JUnit @Test expected annotation not working

user321068 picture user321068 · Apr 5, 2011 · Viewed 78.6k times · Source

I've got the following test:

@Test(expected = IllegalStateException.class)
public void testKey() {
    int key = 1;
    this.finder(key);
}

But JUnit reports, that the test fails, although it throws — as expected — an IllegalStateException.

Do I have to configure something else to make this run?


I run the test now with

@RunWith(Suite.class)
@SuiteClasses(Test.class)
public class TestSuite {

}

like in this question, but am still not getting the desired result.

And when I remove the test prefix I'm still getting an error.

I gotta say that I run these tests with Eclipse, but it's configured to use the JUnit 4 Runner.

Answer

user321068 picture user321068 · Apr 5, 2011

The problem was, that the class in which the test was nested was an extension of TestCase. Since this is JUnit 3 style, the annotation didn't work.

Now my test class is a class on its own.