Книга: Экстремальное программирование. Разработка через тестирование
Тест исключения (Exception Test)
Тест исключения (Exception Test)
Как можно протестировать ожидаемое исключение? Перехватите исключение и игнорируйте его, тест должен терпеть неудачу только в случае, если исключение не сгенерировано.
Предположим, что мы пишем код, осуществляющий поиск значения. Если значение не обнаружено, мы хотим сгенерировать исключение. Тестирование механизма поиска выполняется относительно просто:
public void testRate() {
exchange.addRate("USD", "GBP", 2);
int rate = exchange.findRate("USD", "GBP");
assertEquals(2, rate);
}
Тестирование исключения может оказаться неочевидным. Вот как мы это делаем:
public void testMissingRate() {
try {
exchange.findRate("USD", "GBP");
fail();
} catch (IllegalArgumentException expected) {
}
}
Если метод findRate() не генерирует исключения, произойдет обращение к методу fail() – это метод xUnit, который докладывает о том, что тест потерпел неудачу. Обратите внимание, что мы перехватываем только то исключение, которое должно быть сгенерировано методом findRate(). Благодаря этому, если будет сгенерировано какое-либо другое (неожиданное для нас) исключение (включая сбой метода assert), мы узнаем об этом.
- Тестирование Web-сервиса XML с помощью WebDev.WebServer.exe
- Кто такой тест-менеджер
- Выражения в EXCEPTION
- Разработка через тестирование и разработка с тестами
- 1.2.7. Исключения
- Директор по тестированию
- rc.test-iptables.txt
- Example rc.test-iptables script
- 2. Операции декартового произведения и естественного соединения
- 6. Операция естественного соединения.
- Testing the Project
- Часть III. Шаблоны разработки через тестирование