Вам действительно нужно сначала выполнить BDD/TDD в тестовом режиме?

Вам действительно нужно сначала выполнить BDD/TDD в тестовом режиме?
Вам действительно нужно сначала выполнить BDD/TDD в тестовом режиме? - cdc @ Unsplash

Вы говорите о BDD с точки зрения тестирования пользовательского интерфейса на высоком уровне. На этом уровне тестирование немного более пушистое, чем ниже, в коде на стороне Javascript/сервера.

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

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

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

Если быть честным, извлечение класса из нижележащих слоев означает, что я не делаю сначала тесты, но ... в течение нескольких минут, а иногда и часов у меня будет тест для этого кода. Мне это все еще кажется полезным, поскольку я могу увидеть, где вам может понадобиться поставить зависимости для класса и соблюсти принцип единой ответственности - если его трудно тестировать, значит, вы делаете слишком много в одном месте и т.д.

Рекомендую посмотреть эти видео для лучшего погружения в вопрос:

Прикрепленное видео 1 - Hexlet Webinar - 5 — Тестирование и TDD

Прикрепленное видео 2 - Александр Кугушев — Test Last, Test First, TDD: когда применять тот или иной подход


LetsCodeIt, 27 мая 2023 г., 01:34