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

Sanju picture Sanju · Oct 6, 2010 · Viewed 156.7k times · Source

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

Answer

sleske picture sleske · Oct 6, 2010

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