Начну с примера кода; Я должен проверить функцию, которая обрабатывает пакеты данных. В этой функции пакет данных открывается и когда он не содержит всех ожидаемых данных, генерируется InvalidParameterExeption, который регистрируется.Тест, если исключение поймано с помощью Junit
public void handleData(dataPacket) {
try {
analyseData(dataPacket);
} catch (InvalidParameterException e) {
e.printStackTrace()
}
}
Итак, если все пойдет хорошо, мое исключение напечатано в моем терминале. Но как я могу проверить это? Я не могу использовать это: (так как исключение перехватывается)
@Test(expected = InvalidParameterExeption.class)
public void testIfFaultyDataPacketIsRecognised {
handleData(faultyDataPacket);
}
Как я могу проверить, что InvalidParameterExeption брошено?
Либо вы не должны поймать исключение, либо вы должны удалить @expected annotation и выяснить что-то еще для актива. Печать трассировки стека не очень хорошо обрабатывает исключение. Тот факт, что вы запутались в том, что делать, - это намек на то, как чувствуют себя клиенты вашего класса, когда есть плохой пакет данных, и они понятия не имеют, что делать. – duffymo
Напишите тест для 'analyseData' вместо' handleData'. – Thiefster