Путаница: оставьте функциональные тесты, которые покрывают ту же землю, что и модульные тесты?
Я изо всех сил пытаюсь понять, что следует исключить из функциональных тестов (в моем случае, используя Rails, но я думаю, что структура, вероятно, не имеет значения).
У меня создается впечатление, что я не должен беспокоиться об использовании функциональных тестов для вещей, которые будут пойманы в модульных тестах - например, проверка того, что в поле не может быть слишком много символов или что поле не может быть пустым. Если это так, то какие непредвиденные обстоятельства обязательно должны быть протестированы с помощью функциональных тестов и/или какое правило для оставления других только для модульного тестирования?
Или это впечатление неверно для начала?
Я посмотрел
а также
this
но я все еще в растерянности.
Ответы
Ответ 1
Функциональный тест: выполняет ли он маркетинг/юзабилити/клиенты, подписанные для? т.е. если ваша спецификация указывает, что текстовое поле ZIP допускает только действительные почтовые индексы США, тогда вам, вероятно, следует проверить это в функциональном тесте.
Unit Test: Выполняет ли это то, что ожидает разработчик. В этих тестах вы должны использовать тестовые двойники для выделения кода из зависимостей.
Итак, да, будет перекрытие рода.
Ответ 2
I для "всплесков" через функциональность с функциональными тестами и не беспокоиться о том, чтобы покрыть все и вместо этого сосредоточиться на модульных тестах.
Причины:
- функциональные тесты медленны
- функциональные тесты трудно писать и поддерживать
- функциональные тесты могут захватывать только два дополнительных элемента, кроме ваших модульных тестов:
- Ошибки GUI
- Несоответствия между уровнями
В общем, я обнаружил, что он не окупается, чтобы покрыть все дважды.