如何创建一个JUnit 4测试套件,以便在抛出预期的异常时传递

时间:2011-04-04 09:01:15

标签: unit-testing exception junit annotations test-suite

我正在编写一个JUnit 4测试套件,它运行一些测试来检查是否抛出了异常。就我们自己而言,我的测试看起来有点像这样:

@RunWith(value=BlockJUnit4ClassRunner.class)
public class CreateCommandsExceptionsTest extends TestCase {
    Statistics statistics;
    @Before
    public void setUp(){
        ...
    }
        ...
    @Test (expected=StatsArrayTooShortException.class)
    public void testStatsArrayTooShortException(){
        ...
    }

测试运行正常,但是当我尝试将它们放入测试套件时,它们会失败,因为我正在测试的异常被抛出。

我的测试套件如下:

@RunWith(value=BlockJUnit4ClassRunner.class)
public class UnitTestSuite {
public static testSuite(){
    TestSuite suite = new TestSuite("Test for unitTests");

    suite.addTestSuite(StatisticsTest.class);
    ...
    return suite;
}
}

如果有人能告诉我应该如何设置我的测试套件以便在遇到预期的异常时通过测试,我将不胜感激。

1 个答案:

答案 0 :(得分:4)

您在Junit 4中使用了错误的套件语法。

这是正确的方法:

@RunWith(Suite.class)
@Suite.SuiteClasses({
        JunitTest1.class,
        JunitTest2.class
})
public class JunitTest5 {
}