有没有办法强制测试方法?

时间:2019-06-27 18:07:10

标签: java unit-testing testing junit

我想将单元测试的方法标记为Java代码中经过测试的方法,以便在缺少测试方法的情况下发生编译器错误。 有没有办法做到这一点?我找不到令人满意的解决方案。

2 个答案:

答案 0 :(得分:0)

您将需要一种以某种方式在生产代码中映射方法以及在测试类中进行测试的方法。同样,根据方法的复杂性,可能会有几种测试方法来测试所有可能的分支和输入类型。 您的最终目标是什么?实现100%的测试方法?您是否还要测试DTO中的所有吸气剂/吸气剂?您可以使用Sonar来衡量代码覆盖率,并使用该指标代替单元测试未涵盖的方法数量,因为并非所有方法都应进行测试。

答案 1 :(得分:0)

当然可以。您可以编写自己的后处理器来解析代码,找到标记的方法,运行测试,获取覆盖率结果,将它们与标记的方法进行比较,如果出现问题,则构建失败。

但是

  1. 这是一项工作

  2. 好处很小。为什么?因为重要的不是覆盖范围本身,而是测试的质量。您甚至可以编写一个测试生成器来自动覆盖所有/大部分代码,但它没有任何价值。良好的测试检查特定行为。而且只有开发人员知道预期的行为

测试质量通常包含在代码审查中。在拉取请求屏幕上,您还可以显示拉取请求的统计信息。代码覆盖率等。但是我不确定是否进一步使其自动化值得努力