如何使用 JUnit 5 测试抛出 NullPointerException 的方法
How can I test method which throws NullPointerException using JUnit 5
我如何使用 JUnit 5 测试抛出 NullPointerException 的方法。但是我在方法中捕获了这个异常,所以测试以错误结束:“预期 java.lang.NullPointerException 被抛出,但没有抛出任何东西。”
class MyClass {
void myMethod() {
try {
//do somthing
throw new NullPointerException();
} catch(NullPointerException e) {
//tell about exception
}
}
}
class MyClassTest {
@Test
void shouldThrowNullPointerException() {
MyClass odj = new MyClass();
Assertions.assertThrows(NullPointerException.class, () -> obj.myMethod());
}
}
谢谢
assertThrows
用于 未捕获 异常。对于方法捕获异常的情况没有意义。你不能直接测试它。如果 //do somthing
正在做一些你可以从你的方法外部观察到的事情,那么你可以对此断言(即如果你的 catch 块将 return null
或其他一些值来表示错误发生了。
我如何使用 JUnit 5 测试抛出 NullPointerException 的方法。但是我在方法中捕获了这个异常,所以测试以错误结束:“预期 java.lang.NullPointerException 被抛出,但没有抛出任何东西。”
class MyClass {
void myMethod() {
try {
//do somthing
throw new NullPointerException();
} catch(NullPointerException e) {
//tell about exception
}
}
}
class MyClassTest {
@Test
void shouldThrowNullPointerException() {
MyClass odj = new MyClass();
Assertions.assertThrows(NullPointerException.class, () -> obj.myMethod());
}
}
谢谢
assertThrows
用于 未捕获 异常。对于方法捕获异常的情况没有意义。你不能直接测试它。如果 //do somthing
正在做一些你可以从你的方法外部观察到的事情,那么你可以对此断言(即如果你的 catch 块将 return null
或其他一些值来表示错误发生了。