当前位置: 首页 > 知识库问答 >
问题:

如何使用JUnit5测试抛出NullPointerException方法

越英韶
2023-03-14

如何使用JUnit5测试抛出NullPointerException的方法。但是我在方法中捕获到了这个异常,因此test以错误结尾:“Expected java.lang.NullPointerException to be thrown,But nothing was thrown”。

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());      
   }
}

谢谢

共有1个答案

端木桐
2023-03-14

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

 类似资料:
  • 我有一个类,它有一个方法。我正在做相应的测试,但是我还不能验证是否抛出了定制的异常,我使用的是JUnit5。 我已经复习了这里,但答案并没有帮助我,这是我根据一个示例编写的代码:

  • 我遵循一个单元测试服务的教程,我试图使用JUnit5而不是JUnit4(这是教程使用的)。当我完全按照JUnit4的教程操作时,测试工作正常,但是我得到了JUnit5的NullPointerExc0019。 存储库: 服务: 测试: 以下是异常的前几行: 生成文件的测试和依赖项部分:

  • 问题内容: 不管我怎么努力,就是 永远 。 通过在线搜索,我发现这是一个常见问题,并且与不提供要使用的图像有关…因此,在浏览我认为应该使用的方法时。这仍然无法正常工作。 在SO上也有类似的问题,例如this,它没有帮助,似乎建议使用无数的插件或从扩展到从头开始创建此类。甚至Oracle教程都是含糊的,并且没有概述正确使用中的每个逻辑步骤… 如果不可能或不必要地难以使用,,还有其他选择吗?还是有人破

  • 我正试图为一个方法编写一个测试用例,该方法基于特定的逻辑抛出异常。然而,测试用例失败了,因为预期的异常和获得的异常是不同的。 我如何解决这个问题?

  • 假设我有以下功能: 根据Jest文档,我应该能够使用以下代码测试函数是否引发异常: 但是,我得到了以下错误。 有人能告诉我我做错了什么吗? 谢谢!

  • 问题内容: 我有以下活动: 我得到一个NPE,当我尝试调用的,我猜这是因为是一个独立的片段,我有作为之内: 但是,我不确定如何解决此问题,以便可以找到loginButton ID。我以前没有使用过片段,所以我意识到我可能正在使用它们/错误地实现了它们。包含在几个按钮,并没有什么,但一个。 问题答案: 从片段编写代码以初始化按钮,因为您的按钮进入片段布局而不是活动布局。 而从删除登录按钮相关的代码的