当前位置:  开发笔记 > 编程语言 > 正文

我应该单元测试继承自超类的方法吗?

如何解决《我应该单元测试继承自超类的方法吗?》经验,为你挑选了2个好方法。

我正在以TDD方式编写JDBC驱动程序的实现(是的,你正确地阅读),虽然我此时只完成了类存根,只有一些小功能,但它只是发生在我身上,因为它Statement是一个超类对于PreparedStatement哪个是超类CallableStatement,当我真正开始为这些类的实现编写测试时应该怎么做,其中一个我应该这样做:

    创建一个测试套件Statement,然后扩展该套件以进行其他测试PreparedStatement,然后执行相同的操作CallableStatement.

    单独测试每个实现,忽略从超类继承的方法.

    对每个实施类别严格测试每种方法; 根据实现,一些继承的方法可能会有所不同.这种轻微变化将是我测试实现使用的所有继承方法.

第二个感觉最自然,但由于我放到第三个的原因,我不确定这样做是否明智.那么,认为我应该怎么做?



1> S.Lott..:

"为每个实现类单独测试每个方法"

特别是,未能正确覆盖超类方法是一个常见的错误.子类的作者对超类做出假设.超类发生了变化,子类现在被破坏了.


这将是正确的做法.您需要确保所有方法仍然有效.

2> krosenvold..:

如果这意味着您将为每个测试子类重复运行相同的测试,那么我将永远不会做替代1(让测试类层次结构与实际的类层次结构相同).我也普遍对继承测试类而不是通用实用程序基类持怀疑态度.

我通常对层次结构中的每个类进行1次测试,抽象与否.所以基类有一个单独的测试(通常有一个测试本地私有子类,用于专门测试它),我使用我的子类知识为每个子类编写适当的测试.我可以在报道中看到缺少测试的内容,所以我通常不会过于正式化.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有