Search code examples
javaunit-testingjunitjunit4

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


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


Solution

  • 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().