What's the actual use of 'fail' in JUnit test case?

后端 未结 8 1116
长情又很酷
长情又很酷 2021-01-30 15:31

What\'s the actual use of \'fail\' in JUnit test case?

相关标签:
8条回答
  • 2021-01-30 16:10

    Some cases where I have found it useful:

    • mark a test that is incomplete, so it fails and warns you until you can finish it
    • making sure an exception is thrown:
    try{
      // do stuff...
      fail("Exception not thrown");
    }catch(Exception e){
      assertTrue(e.hasSomeFlag());
    }
    

    Note:

    Since JUnit4, there is a more elegant way to test that an exception is being thrown: Use the annotation @Test(expected=IndexOutOfBoundsException.class)

    However, this won't work if you also want to inspect the exception, then you still need fail().

    0 讨论(0)
  • 2021-01-30 16:12

    I think the usual use case is to call it when no exception was thrown in a negative test.

    Something like the following pseudo-code:

    test_addNilThrowsNullPointerException()
    {
        try {
            foo.add(NIL);                      // we expect a NullPointerException here
            fail("No NullPointerException");   // cause the test to fail if we reach this            
         } catch (NullNullPointerException e) {
            // OK got the expected exception
        }
    }
    
    0 讨论(0)
提交回复
热议问题