0

我正在寻找类似 PHPUnit 的Java的“指定涵盖的方法”之类的东西。这意味着一个代码覆盖工具,它带有我的 JUnit 测试的注释,以便我可以指定哪个方法由哪个 JUnit 测试测试。

这样做的效果将是覆盖行上的更正确的度量,因为只计算指定方法的行,而不是整个应用程序的所有执行行。

4

1 回答 1

2

这种方法听起来好像会给程序员带来沉重的负担。它要么假设测试和方法之间存在 1:1 的对应关系(这违背了通常的建议来考虑测试类的行为,而不是方法),或者要求程序员通过私有方法等手动跟踪路由代码的每个入口点都会随着时间的推移进行重构和更改。

很难看出如何通过类型安全来实现这一点 - 快速自动化操作(例如方法重命名)需要手动步骤来更新测试中的注释。

如果您的要求是更准确地估计测试套件的有效性,您可能会考虑另一种方法是突变测试。这会将错误植入您的代码中,然后检查您的套件是否能够检测到它们。

有许多可用于 Java 的系统,包括

可以在此处获得它们的比较

http://pitest.org/java_mutation_testing_systems/

于 2012-12-16T13:36:08.943 回答