有没有更好的方法断言方法在JUnit 5中抛出异常?
目前,我必须使用@Rule来验证我的测试是否会引发异常,但这对于我希望多个方法在我的测试中抛出异常的情况不起作用.
解决方法:
您可以使用assertThrows()
,它允许您在同一测试中测试多个异常.在Java 8中支持lambdas,这是在JUnit中测试异常的规范方法.
按照JUnit docs:
import static org.junit.jupiter.api.Assertions.assertThrows;
@Test
void exceptionTesting() {
MyException thrown =
assertThrows(MyException.class,
() -> myObject.doThing(),
"Expected doThing() to throw, but it didn't");
assertTrue(thrown.getMessage().contains("Stuff"));
}