Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 我应该测试继承和实现吗?_Unit Testing_Inheritance_Implements - Fatal编程技术网

Unit testing 我应该测试继承和实现吗?

Unit testing 我应该测试继承和实现吗?,unit-testing,inheritance,implements,Unit Testing,Inheritance,Implements,单元测试是否应该检查类是否使用反射实现接口(与继承问题相同)?若否,原因为何 如果删除了实现,代码仍然可以编译,测试仍然可以成功(这取决于代码的功能) 单元测试应该测试任何可能不起作用的东西。如果编程语言不能确保类实现契约中的所有方法,那么您可能需要在测试中检查这一点。您应该测试对代码重要的内容。继承、接口等充其量只是实现细节,应该隐藏在原始数据结果之外 也就是说,如果您的代码在没有继承的情况下通过,那么它可能不需要继承,应该将其清理干净。在我的职业生涯中,有几次我编写这种单元测试,主要是为了测

单元测试是否应该检查类是否使用反射实现接口(与继承问题相同)?若否,原因为何


如果删除了实现,代码仍然可以编译,测试仍然可以成功(这取决于代码的功能)

单元测试应该测试任何可能不起作用的东西。如果编程语言不能确保类实现契约中的所有方法,那么您可能需要在测试中检查这一点。

您应该测试对代码重要的内容。继承、接口等充其量只是实现细节,应该隐藏在原始数据结果之外


也就是说,如果您的代码在没有继承的情况下通过,那么它可能不需要继承,应该将其清理干净。

在我的职业生涯中,有几次我编写这种单元测试,主要是为了测试约定

例如,有一个隐含的假设,即所有单元测试都应该继承自BaseTest(虽然从技术上讲,没有它一切都可以正常工作,但为了一致性,我们希望这样做),并且我们有一个单元测试,它正好执行了这一点:)


是的,如果必要的话,这是非常有意义的。

假设项目是一个库,类
a
和类
B
实现了一个特定的接口
I
A
B
可以被客户端用作
I
,直到有人决定
B
不再实现
I
。如果没有特定的测试,代码仍然可以编译,测试仍然可以通过。那么我想单元测试应该检查一下。听起来好像有人没有真正遵循好的协议,而是依赖
I
作为抽象,而依赖
B
作为具体的实现。由于代码没有保证
B
的稳定性,因此您无法真正进行测试。