Книга: Экстремальное программирование. Разработка через тестирование

Тест исключения (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), мы узнаем об этом.

Оглавление книги


Генерация: 1.186. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз