【发布时间】:2017-04-05 12:08:34
【问题描述】:
在提出这个问题之前,我阅读了这些问题及其答案:
- What is a reasonable code coverage % for unit tests (and why)?
- Is 100% code coverage a really good thing when doing unit tests?
- Unit testing code coverage - do you have 100% coverage?
也可以阅读其他博客,例如 Martin Fowler - TestCoverage。
我的结论 - 当然是简历 - 社区说:
- 不要浪费时间(时间就是金钱)来创建测试以获得 100% 的代码覆盖率。
- 也许像 80% 或 90% 的覆盖测试这样的神奇数字可以覆盖 99.99999% 的功能。那么,您为什么要浪费时间来完成 0.000001% 的功能呢?!
我同意。但我担心给开发人员不创建测试的机会,因为他认为这并不重要。我知道我们可以通过让其他人在发布代码之前验证代码来避免这些错误。
问题
以一种控制开发人员知道不应该测试的方式进行思考,在代码中创建一种//special comment 给开发人员明确标记他知道不值得测试的地方将是一个好习惯要测试?或者那会是一个不相关的信息,会弄乱代码吗?有人可以提出另一个想法来完成它吗?
在阅读此问题的任何答案之前,我认为这是一种很好的做法,因为第三方可以检查(同意与否)开发人员未涵盖该代码的原因。
java 示例:
public String encodeToUTF8(String value){
String encodedValue = null;
try {
encodedValue = URLEncoder.encode(value, "UTF-8");
}
catch (UnsupportedEncodingException ignore) {
// [coverage-not-need] this exception will never occur because UTF-8 is a supported encoding type
}
return encodedValue;
}
术语:100% 代码覆盖意味着覆盖所有分支,而不仅仅是所有行。
【问题讨论】:
标签: unit-testing testing