下面是JUnit4代码:
Assertions.assertNotThrows(ExceptionNotToThrow.class, () -> {
.....
});
我试着把这段代码迁移到Junit5上:
Assertions.assertDoesNotThrow(ExceptionNotToThrow.class, () -> {
.....
});
但我得到了:
Cannot resolve method 'assertDoesNotThrow(Class<ExceptionNotToThrow>, <lambda expression>)'
你知道我怎样才能正确地迁移这些代码吗?
2条答案
按热度按时间fjnneemd1#
你可以试试这个:
dphi5xsq2#
JUnit 5的内置
Assertions
类没有接受预期异常类型的assertDoesNotThrow
方法重载。在我看来,Assert一个特定的异常不会被抛出是没有意义的。为什么某个异常会导致测试失败,而如果抛出其他异常,测试就应该通过?如果你期望抛出 something,那么我认为assertThrows
是更合适的Assert。无论如何,您可以执行以下操作来模拟JUnit 4代码的行为(尽管我在JUnit 4的the documentation中找不到这样的
assertNotThrows
方法?).但是如果您需要多次这样做,那么我建议您为此创建自己的Assert方法。例如:
它可以用于:
或者,您可以查看是否存在已经提供类似上述内容的第三方库。