单测是提高软件质量最有效最节省成本的的手段,不是之一。本文展示的如何使用Junit测试会抛出异常的函数。
本文参考:
https://stackoverflow.com/questions/40268446/junit-5-how-to-assert-an-exception-is-thrown
具体代码示例如
业务代码
public void validateParameters(Integer param ) {
if (param == null) {
throw new NullPointerException("Null parameters are not allowed");
}
}
单测代码:
@Test
@DisplayName("Test assert NullPointerException")
void testGeneralException(TestInfo testInfo) {
final ExpectGeneralException generalEx = new ExpectGeneralException();
NullPointerException exception = assertThrows(NullPointerException.class, () -> {
// 这里调用会抛出异常的代码
generalEx.validateParameters(null);
});
assertEquals("Null parameters are not allowed", exception.getMessage());
}
或者通过contain判断异常是否包含指定内容
assertTrue(exception.getMessage().contains("404 Not Found"));