JUnit @Test expected annotation not working

2020-01-31 02:49发布

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.

8条回答
狗以群分
2楼-- · 2020-01-31 03:17

No, this JUnit test should work as it is - there is nothing more needed on this side.

What makes you sure that the test throws an IllegalStateException? Is it possible that it gets wrapped into another exception of different type?

Please post the exact failure message from JUnit.

As @duffymo suggested, it is easy to verify what (if any) exception the test really throws.

查看更多
冷血范
3楼-- · 2020-01-31 03:22

Just tested this under JUnit4: this DO work, test completes successfully. Look if it is a IllegalSelectorException or such.

查看更多
登录 后发表回答