【问题标题】:How can I test method which throws NullPointerException using JUnit 5如何测试使用 JUnit 5 抛出 NullPointerException 的方法
【发布时间】:2021-03-21 13:24:05
【问题描述】:

如何使用 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());      
   }
}

谢谢

【问题讨论】:

    标签: java unit-testing junit nullpointerexception junit5


    【解决方案1】:

    assertThrows 用于未捕获异常。对于方法捕获异常的情况没有意义。您不能直接对此进行测试。如果//do somthing 正在做一些您可以从您的方法外部观察到的事情,那么您可以对此进行断言(即,如果您的 catch 块将返回 null 或其他一些值来表示发生了错误。

    【讨论】:

    • 谢谢。我稍微编辑了这个问题。如果方法捕获异常,那么我不需要测试这个方法?
    • 至少你不需要测试异常。
    猜你喜欢
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多