Для себя я пытаюсь понять баланс между поиском высокого уровня охвата кодом при тестировании и долгосрочной стоимостью поддержки набора тестов, которые могут быть довольно хрупкими.
Предположим, что у нас есть контроллер, который идет
try {
result = mode.doSomething();
if (result.count == 0)
message = "none found"
redisplay criterion page
else if (result.count == 1)
display detail page
else
display list page
} catch exception {
message = "bad things happened, please try again"
redisplay criterion page
}
Предварительная мысль, что испытания трех случаев COUNT (0, 1, много) может быть менее ценным, и более склонны к изменениям, чем испытания дела об исключении. Менее важно, потому что а). другое тестирование будет ловить проблемы на дисплее страницы b). тест очень близок к простому воспроизведению кода.
code: go to page X
test: did you go to page X?
Если разработчик ошибочно выбирает X, он тоже ошибается! Если юзабилити-тестирование пользовательского интерфейса показывает, что Y - лучшая страница для отображения, мы обновляем код и тест в тандеме. Действительно ли тест действительно чего-то добился?
Принимая во внимание, что случай исключения может быть очень сложным в обычном тестировании пользовательского интерфейса, и действительно легко тестировать с помощью mocks. И поведение за исключениями - это то, что нам действительно нужно.
Многие части визуального поведения я уже тестирую через огурец. – 2009-09-12 10:44:38