Я пишу тест модуля Java для одного из моих методов. Объявление метода таково:Управление проверенными исключениями в разных тестах JUnit
public int convertToInteger() throws InvalidRomanNumberException
{
int result=0;
BaseRomanNumeral num1, num2;
int i=0;
if(!validOperation())
throw new InvalidRomanNumberException();
}
Теперь я пытаюсь написать два модульных теста. Один из них - проверить, выбрано ли правильное исключение. Другой - убедиться в том, что происходит преобразование записи. Это как мой тест выглядит
@Test
public void testRomanNumberConversion() {
String romanValue="MCMII";
RomanNumber num=new RomanNumber(romanValue);
assertEquals(1903,num.convertToInteger());
}
@Test(expected = InvalidRomanNumberException.class)
public void testInvalidRomanNumberExceptionThrown() {
String romanValue="MCMIIII";
RomanNumber num=new RomanNumber(romanValue);
num.convertToInteger();
}
Для обоих этих тестов я получаю сообщение об ошибке говорящее Необработанное InvalidRomanNumberException. Это разрешается только тогда, когда я добавляю броски InvalidRomanNumberException для каждого определения метода. Но я не думаю, что это правильный путь. Просто хочу проверить с остальными, что здесь является нормой? Как мне решить это необработанное сообщение об исключении
так что ваше предложение - я просто добавляю броски InvalidRomanNumberException справа. И если есть исключение, то тест просто потерпит неудачу. Поэтому нет необходимости добавлять try catch в другое место в программе для этого тестового метода, который бросает исключение – gazubi
@bob_d: Нет.Мое предложение состоит в том, что метод, в котором вы не ожидаете исключения, должен использовать «try-catch», а тот, который вы ожидаете, должен использовать «throws». В первом случае вы должны утверждать результат, который вы ожидаете от метода convertToInteger, независимо от того, выбрано ли исключение или нет. В дальнейшем вы утверждаете, что исключение «ожидается». См. Мое редактирование последних нескольких строк во втором абзаце. – CKing
спасибо, это звучит вполне логично – gazubi