Как создать тестовый пакет 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;
}
}

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

1 ответ

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

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

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

licensed under cc by-sa 3.0 with attribution.