Стоит ли тестировать простые детали?

Стоит ли тестировать простые детали?
Стоит ли тестировать простые детали? - cdc @ Unsplash

В проектах front-end (сделанных на фреймворках типа Angular или React), когда мы правильно инкапсулируем сложные функциональные возможности, компоненты, которые действительно имеют какое-то отношение к бизнес-логике, обычно становятся простыми, как форма с валидациями по умолчанию, предоставляемыми фреймворком (или lib).

Итак, имеют ли юнит-тесты типа "тестирование, если неправильный ввод в форму предотвращает отправку", "если правильный ввод делает отправку разрешенной" действительно ценность? Тестирование того, работает ли валидация этих компонентов, не было бы тем же самым, что и тестирование библиотеки Form (или фреймворка в случае Angular)?

Стоит ли тестировать простые детали?

Может быть?

Мне платят за работающий код, а не за тесты, поэтому моя философия заключается в том, чтобы тестировать как можно меньше, чтобы достичь заданного уровня уверенности — Кент Бек, 2008 г.

В контексте разработки через тестирование «программистские тесты» мотивированы анализом и дизайном, а не проверкой (см. Цель, огонь — Бек, 2001).

Для кода, который «настолько прост, что явно не имеет недостатков», создание набора тестов — это инвестиция, которую вы можете отложить до тех пор, пока не обнаружите, что требуется дополнительная сложность.

Если вы знаете о промежутке между решением и обратной связью во время программирования и используете соответствующие методы для контроля этого промежутка, то вы применяете TDD «правильно», даже если соответствующий метод, который вы используете, не является автоматической проверкой. . (Примечание: это из Test Driven Development by Example, того же источника, который говорит, что мы должны написать неудачный автоматический тест, прежде чем писать какой-либо код. Смешанные сигналы смешаны.)


Если вы рассматриваете тесты для проверки, то соображения немного другие. В конечном счете, мы (а не авторы библиотеки форм или фреймворка) несем ответственность перед нашими клиентами/целевыми донорами/владельцем золота. Поэтому нам нужно понять, какие риски мы пытаемся снизить, какие стратегии смягчения доступны, и какая из этих стратегий предлагает наилучшую комбинацию компромиссов.


LetsCodeIt, 27 декабря 2022 г., 05:36

Похожие посты

Детали модульного тестирования, в которых используется объект-значение, созданный фабрикойСледует ли выбирать повторяющийся код в юнит-тесте или логику тестирования? Можно ли избежать и того, и другого?Модульные тесты и насмешки, когда аргументы функций изменились?Должен ли я проводить модульное тестирование "тривиальных" функций, которые являются обертками вокруг Pandas API?Должны ли интеграционные тесты шаблона репозитория использовать низкоуровневые вызовы ORMДолжны ли файлы ресурсов тестов храниться в каталогах исходных текстов классов Java?Улучшение процесса CI путем тестирования на образе docker и отказа сборки docker в случае неудачи тестаДолжен ли я проводить модульное тестирование "тривиальных" функций, которые являются обертками вокруг Pandas API?Можно ли тестировать простые лямбды?Правильный способ начать модульное тестирование Web API