Test expected exceptions with JUnit 3 and JUnit 4

With JUnit 4 it is pretty simple to test if an exception has been properly thrown because you can use annotations:

1
2
3
4
5
6
7
8
9
10
11
12
13
import static org.junit.Assert.fail;
import org.junit.*;
 
public class MyTestClass
{
 
  @Test(expected = NoMatchFoundException.class)
  public void testSomething() throws NoMatchFoundException
  {
    // Your critical code here!
    fail();
  }
}

If you are using JUnit 3 then it is not that easy because you don’t have annotations. That’s why you have to catch exceptions in the test code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import junit.framework.TestCase;
 
public class MyTestClass extends TestCase
{
  public void testSomething() throws NoMatchFoundException
  {
    try
    {
      // Your critical code here!
    }
    catch (NoMatchFoundException ex)
    {}
  }
}

How to check for checked exceptions with JUnit 4

Code sample:

  @Test(expected = NoMatchFoundException.class)
  public void testGetRenamedFilePathWorstCase() throws NoMatchFoundException
  {
    String logEntry = "   A /my/folder/with/a/file.txt";
    RegExMatcher instance = new RegExMatcher();
    String actual = instance.getRenamedFilePath(logEntry);
    fail("Should have raised a NoMatchFoundException.");
  }

JUnit Beispiel

Für alle, die noch nie mit dem JUnit-Testframework gearbeitet haben, habe ich mal eine Testklasse geschrieben, die eine beispielhafte Klasse testet.

Mit NetBeans lassen sich JUnit-Vorlagen ganz einfach erstellen, indem man einen Rechtsklick auf sein Projekt macht und dann „New“ -> „Other“ -> „JUnit“ auswählt. Die daraufhin im Wizard erstellten Testklassen befinden sich dann in „Test Packages“.
JUnit Beispiel weiterlesen