Я тестирую WeekConverter для использования в Xalan и задаюсь вопросом, что именно делает мой тест. : D
Имея следующий метод испытаний:
@Test(expected = IllegalArgumentException.class)
public void testConvertTwoDigitYearWithWrongInput() {
WeekConverter weekConverter = new WeekConverter(WeekConverter.Strategy.TWO_DIGIT_YEAR);
//wrong or empty inputs
assertEquals("0", weekConverter.convert(""));
assertEquals("0", weekConverter.convert("abcdefgh"));
}
Будет ли этот тест ожидать исключения для всех утверждений или только для первого утверждения? Если только первое, что будет означать, что я должен создать метод тестирования для каждого утверждения, хотя я ожидаю одно и то же исключение в обоих случаях. Может кто-нибудь подтвердить мой пример здесь, пожалуйста?
У меня также есть тест для нуля, который выдает NullPointerException . Мягкая проверка следующая:
if (inputDate == null) {
do something and throw NullPointerexception
} else if (inputDate.isEmpty()) {
do something and throw IllegalArgumentException, since inputDate is not really null
} else if (inputDate.matches(regex)) {
go futher and convert
} else {
do something and throw IllegalArgumentException, since inputDate does not match regex
}
Следовательно, один метод тестирования ожидает IllegalArgumentException с двумя утверждениями. Но очевидно, что мне нужны два разных метода тестирования, не только для уважения функциональности JUnit, но и для того, чтобы ожидать выброс из двух разных состояний.