【发布时间】:2014-04-16 06:40:10
【问题描述】:
我有一个测试:
@Rule
public ExpectedException thrown = ExpectedException.none();
...
@Test
public void testMethod()
{
final String error = "error message";
Throwable expectedCause = new IllegalStateException(error);
thrown.expectCause(org.hamcrest.Matchers.<Throwable>equalTo(expectedCause));
someServiceThatTrowsException.foo();
}
当通过 mvn 测试方法运行时,我得到了错误:
java.lang.NoSuchMethodError: org.junit.rules.ExpectedException.expectCause(Lorg/hamcrest/Matcher;)V
测试编译正常。
请帮帮我,不明白如何测试异常原因?
【问题讨论】:
-
我目前有同样的问题......对我来说,当我使用从父项目继承的依赖项时会出现问题,但现在当我在本地 POM.xml 中重新声明依赖项时。你找到解决办法了吗??
-
@Dennis,不,我没有。我使用标准的 try/catch java 习惯用法。如果没有抛出异常,则调用 junit fail()。在 catch 块中我分析了原因。
-
谢谢。我现在会坚持我的重复依赖,但会像你所做的那样回退到一个 try-catch 块。
标签: java unit-testing maven junit