问题描述
在一个大型Java项目中,我们使用JUnit测试。我们的Jenkins帮助我们监控代码覆盖率,并显示我们在这方面取得的进展。
但是似乎还有一些缺失。在我们的情况下,其中一个应用程序会生成一个基于不同源文件生成的数据文件的zip文件。
所有生成这些数据文件的代码都被覆盖了,但这并不能告诉我们生成文件本身的内容是否正确。这只是生成额外的JUnit测试并依赖于团队的知识来知道需要测试什么吗?还是可以以某种方式进行控制和监控?
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
我会采用以下方法来解决这个问题:在JUnit测试的第二部分中,读取生成的zip文件,然后验证其是否正确。你是对的,如果你只确保你可以生成文件,但文件是不正确的,那么单元测试是不完整的。
方案2
请注意以下操作注意版本差异及修改前做好备份。
这是我的观点:覆盖率并不能说明正确性,所以如果你为了覆盖率而编写单元测试,那么你是在做错事。单元测试应该源于需求,覆盖率是测试套件和代码质量完整性的度量标准。如果覆盖率低,有可能是因为:
– 你的单元测试没有覆盖所有的需求。
– 存在死代码。
以上是两种解决方案,你可以根据你的具体情况选择适合你的方法。
正文完