用Java捕获假单元测试

问题描述 投票:-1回答:2

虽然jacoco提供了很好的报道,但我的回购中没有断言的测试。除了更好的代码审查之外,有没有办法检测这样的测试?

java unit-testing jacoco
2个回答
2
投票

使用PMD。它有一个标准规则,适用于没有任何资产的单元测试。


0
投票

如果你的意图只是发现一些错误的测试,即缺乏任何assert声明的测试,像PMD这样的跳棋可能会起作用。您可能会得到一些误报,即测试中实际测试目标只是为了确保SUT不会抛出异常(Peter Lawrey在评论中提到的情况)。

然而,在测试中还有许多问题并不容易找到:断言可能是错误的(assertTrue(isPrime(9))),或者,断言可能只涉及相关方面的一部分(例如,在处理有理数时,只检查分子而不是分母)。

为了检测这些质量问题,还存在一些方法,例如突变测试,这在某种程度上可以有所帮助。并且,在编写测试时首先:使用测试第一个开发过程确保测试至少失败一次。

但是,测试套件可能存在与执行的测试集无关的其他问题,但与非功能性质量标准无关:测试执行时间,测试套件的可维护性,测试时诊断输出的表现力失败等

当你有兴趣发现这些问题时,我认为评论是不可避免的。

© www.soinside.com 2019 - 2024. All rights reserved.