【发布时间】:2022-10-04 21:59:43
【问题描述】:
如果你有 100% 的测试覆盖率并且所有测试都通过了,这是否意味着代码可以保证是正确的并且编写更多的测试是没有意义的?
【问题讨论】:
-
有人投票决定将其关闭为基于意见,但显然不是。一个简单的反例可以否定地回答这个问题。
标签: unit-testing tdd
如果你有 100% 的测试覆盖率并且所有测试都通过了,这是否意味着代码可以保证是正确的并且编写更多的测试是没有意义的?
【问题讨论】:
标签: unit-testing tdd
只要您的测试逻辑正确,它就是正确的。
我会举一个最愚蠢的例子......
例如,如果我有一个类(Java):
public class Example {
public int timesTwo(int x){
return x*2;
}
}
通过以下测试(您可以看到它不合逻辑且无用)
public class ExampleTest {
@Test
public void timesTwo() {
new Example().timesTwo(5);
assertTrue(true);
}
}
大多数覆盖工具会说这个类已经过 100% 的测试! 所以不,覆盖率是需要测试的一个很好的指标;但测试逻辑本身并不确定。
【讨论】: