【发布时间】:2014-06-27 20:34:18
【问题描述】:
所有 JUnit 断言方法都有一个可选的第一个参数,即断言失败时打印的消息。
如何确保始终传递参数,并且我的项目中的开发人员从不懒惰地跳过描述断言在做什么?
是否有可以检查的检查工具? 有什么我可以通过编程方式做的吗?
我的项目是 maven 友好的。
【问题讨论】:
-
您可以将 JUnit Assert 包装在您自己的类中,隐藏无消息方法,并强制您的开发人员导入您的断言库。
-
不要这样做,即使有办法。在大多数情况下,您只需要 junit 的本机消息:“预期为 6,但为 3”,并带有堆栈跟踪显示哪里出错了。更重要的是为您的测试选择好的名称。
-
@CarlManaster 大多数情况下,但
assertTrue和assertFalse确实受益于用户提供的一些有意义的消息。 -
@DavidConrad 使用
assertThat和 hamcrest 匹配器提供更多信息的默认错误消息 -
@dkatzel 问题仍然存在,如何检查所有代码以确保项目中的所有开发人员都使用
assertThat和 hamcrest 匹配器而不是assertTrue和assertFalse没有String message参数。
标签: java testing junit policy code-inspection