Ожидаемый тег JUnit не работает должным образом
У меня есть следующий тестовый пример в eclipse, используя JUnit 4, который отказывается пройти. Что может быть неправильным?
@Test(expected = IllegalArgumentException.class)
public void testIAE() {
throw new IllegalArgumentException();
}
Этот точный тест появился при попытке проверить мой собственный код с ожидаемым тегом, который не работал. Я хотел посмотреть, пройдет ли JUnit самый базовый тест. Это не так.
Я также тестировал с пользовательскими исключениями, как ожидалось, без везения.
Скриншот:
Снимок экрана http://www.freeimagehosting.net/uploads/6a995b0db7.png
Ответы
Ответ 1
Проблема заключается в том, что ваш AnnounceThreadTest расширяет TestCase. Поскольку он расширяет TestCase, JUnit Runner рассматривает его как тест JUnit 3.8, и тест выполняется, потому что он начинается с теста слов, скрывая тот факт, что аннотация @Test на самом деле вообще не используется.
Чтобы исправить это, удалите "extends TestCase" из определения класса.
Ответ 2
Просто запустил это в IntelliJ, используя JUnit 4.4:
@Test(expected = IllegalArgumentException.class)
public void testExpected()
{
throw new IllegalArgumentException();
}
Проходит отлично.
Восстановите весь проект и повторите попытку. Там что-то еще, что вы делаете неправильно. JUnit 4.4 работает как рекламируемый.