如何使用 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 或其他一些值来表示错误发生了。