JUnit @Test预期的注释不起作用

2022-09-01 06:31:39

我有以下测试:

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

但是 JUnit 报告说,测试失败了,尽管它像预期的那样抛出了一个 .IllegalStateException

我是否必须配置其他内容才能运行此内容?


我现在运行测试

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

}

就像在这个问题中一样,但我仍然没有得到预期的结果。

当我删除前缀时,我仍然收到错误。test

我不得不说我用Eclipse运行这些测试,但它被配置为使用JUnit 4 Runner。


答案 1

问题是,嵌套测试的类是 的扩展。由于这是 JUnit 3 样式,因此注释不起作用。TestCase

现在我的测试类本身就是一个类。


答案 2
@RunWith(JUnit4.class)
public class MyTestCaseBase extends TestCase 

当我在基础测试中扩展 TestCase 类时,我也遇到了@Test(expected = ...) 注释的问题。使用@RunWith(JUnit4.class)立即帮助(我承认这不是一个非常优雅的解决方案)