【发布时间】:2011-01-29 00:29:14
【问题描述】:
我已经编写了一些带有 @Test 注释的 JUnit 测试。如果我的测试方法抛出一个已检查的异常,并且如果我想将消息与异常一起断言,有没有办法使用 JUnit @Test 注释来做到这一点? AFAIK,JUnit 4.7 不提供此功能,但是否有任何未来版本提供它?我知道在.NET 中你可以断言消息和异常类。在 Java 世界中寻找类似的功能。
这就是我想要的:
@Test (expected = RuntimeException.class, message = "Employee ID is null")
public void shouldThrowRuntimeExceptionWhenEmployeeIDisNull() {}
【问题讨论】:
-
现在我想多了...你确定断言这个消息是个好主意吗?您的问题让我深入研究了 junit 源代码,似乎他们可以轻松添加此功能。他们没有的事实让我认为这可能不是一个好的做法。为什么在您的项目中断言消息很重要?
-
好问题。假设一个包含 15 行代码的方法从 2 个不同的地方抛出相同的异常。我的测试用例不仅需要断言异常类,还需要断言其中的消息。在理想的世界中,任何异常行为都应该有自己的异常。如果是这样,我的问题就不会出现,但生产应用程序没有针对每个异常行为的独特自定义异常。
-
附带说明 - PHPUnit 中有
@expectedExceptionMessage注释。
标签: java testing annotations junit4 assertion