Как создать набор тестов JUnit 4, который будет проходить при возникновении ожидаемых исключений

Я пишу набор тестов 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;
}
}

Если бы кто-нибудь мог сказать мне, как мне настроить свой набор тестов, чтобы я мог пройти тест при обнаружении ожидаемого исключения, я был бы признателен.


person Jennifer    schedule 04.04.2011    source источник


Ответы (1)


Вы используете неправильный синтаксис для Suite в Junit 4.

Это правильный путь:

@RunWith(Suite.class)
@Suite.SuiteClasses({
        JunitTest1.class,
        JunitTest2.class
})
public class JunitTest5 {
}
person oers    schedule 04.04.2011
comment
Это работает! Спасибо! Не могли бы вы порекомендовать какую-нибудь хорошую документацию для JUnit? Я не могу найти ни одного - person Jennifer; 04.04.2011
comment
junit.sourceforge.net - поваренная книга junit4 junit.org - основной сайт для junit - person oers; 04.04.2011