Unit testing 我应该测试继承和实现吗?
单元测试是否应该检查类是否使用反射实现接口(与继承问题相同)?若否,原因为何Unit testing 我应该测试继承和实现吗?,unit-testing,inheritance,implements,Unit Testing,Inheritance,Implements,单元测试是否应该检查类是否使用反射实现接口(与继承问题相同)?若否,原因为何 如果删除了实现,代码仍然可以编译,测试仍然可以成功(这取决于代码的功能) 单元测试应该测试任何可能不起作用的东西。如果编程语言不能确保类实现契约中的所有方法,那么您可能需要在测试中检查这一点。您应该测试对代码重要的内容。继承、接口等充其量只是实现细节,应该隐藏在原始数据结果之外 也就是说,如果您的代码在没有继承的情况下通过,那么它可能不需要继承,应该将其清理干净。在我的职业生涯中,有几次我编写这种单元测试,主要是为了测
如果删除了实现,代码仍然可以编译,测试仍然可以成功(这取决于代码的功能) 单元测试应该测试任何可能不起作用的东西。如果编程语言不能确保类实现契约中的所有方法,那么您可能需要在测试中检查这一点。您应该测试对代码重要的内容。继承、接口等充其量只是实现细节,应该隐藏在原始数据结果之外
也就是说,如果您的代码在没有继承的情况下通过,那么它可能不需要继承,应该将其清理干净。在我的职业生涯中,有几次我编写这种单元测试,主要是为了测试约定 例如,有一个隐含的假设,即所有单元测试都应该继承自BaseTest(虽然从技术上讲,没有它一切都可以正常工作,但为了一致性,我们希望这样做),并且我们有一个单元测试,它正好执行了这一点:)
是的,如果必要的话,这是非常有意义的。假设项目是一个库,类
a
和类B
实现了一个特定的接口I
A
和B
可以被客户端用作I
,直到有人决定B
不再实现I
。如果没有特定的测试,代码仍然可以编译,测试仍然可以通过。那么我想单元测试应该检查一下。听起来好像有人没有真正遵循好的协议,而是依赖I
作为抽象,而依赖B
作为具体的实现。由于代码没有保证B
的稳定性,因此您无法真正进行测试。