在 JUnit 测试用例中,“fail”的实际用途是什么?

2022-08-31 07:55:58

在 JUnit 测试用例中,“fail”的实际用途是什么?


答案 1

我发现它有用的一些情况:

  • 标记未完成的测试,使其失败并警告您,直到您完成为止
  • 确保引发异常:
try{
  // do stuff...
  fail("Exception not thrown");
}catch(Exception e){
  assertTrue(e.hasSomeFlag());
}

注意:

从 JUnit4 开始,有一种更优雅的方法来测试是否正在引发异常:使用注释@Test(expected=IndexOutOfBoundsException.class)

但是,如果您还想检查异常,这将不起作用,那么您仍然需要 .fail()


答案 2

假设您正在为负流编写一个测试用例,其中正在测试的代码应引发异常。

try{
   bizMethod(badData);
   fail(); // FAIL when no exception is thrown
} catch (BizException e) {
   assert(e.errorCode == THE_ERROR_CODE_U_R_LOOKING_FOR)
}

推荐