如果代码中有任何异常,如何使 Junit 测试用例失败?

2022-09-03 16:42:47

我写了一个 Junit 测试来单元测试我的代码。我希望我的 Junit 测试用例在代码中出现任何异常时失败。我尝试使用 assert 语句,但即使我在代码中遇到异常,我的 Junit 测试用例也会通过。任何人都可以告诉我如何实现这一目标?谢谢。


答案 1

我强烈建议您只测试您的功能。如果引发异常,测试将自动失败。如果未引发异常,则测试将全部变为绿色。

但是,如果您仍然想编写在异常情况下应该失败的测试代码,请执行如下操作:-

@Test
public void foo(){
   try{
      //execute code that you expect not to throw Exceptions.
   }
   catch(Exception e){
      fail("Should not have thrown any exception");
   }
}

答案 2

实际上,当代码中引发异常时,测试应该会失败。当然,如果你抓住了这个异常,并且不进一步抛出它(或任何其他异常),测试就不会知道它。在这种情况下,您需要检查方法执行的结果。示例测试:

@Test
public void test(){
  testClass.test();
}

测试失败的方法:

public void test(){
  throw new RuntimeException();
}

不会失败测试的方法

public void test(){
  try{
    throw new RuntimeException();
  } catch(Exception e){
    //log
  }
}

推荐