Раздел 43 · Автотестирование с нуля

TDD с нуля: красный, зелёный, рефакторинг

junior~20 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Вера Ланская · лид QA, #qa-antrakt

Маркетинг придумал промокоды для «Белых ночей звука»: у каждого срок действия, минимальная сумма заказа, и в заказе только один. Тимур начинает завтра. Весной Глеб писал похожую проверку, и тест к ней появился через неделю после кода. Этот тест зелёный до сих пор, хотя промокод отваливается в последний день акции. Давай в этот раз наоборот: сначала тест, потом код. Покажи мне на этих четырёх правилах, как это выглядит.

Обычно тест пишут после кода: код готов, его запускают, смотрят, что вышло, и закрепляют это тестом. У такого порядка есть подвох, и Глеб в него попал. В этом уроке ты сделаешь наоборот и пройдёшь четыре коротких цикла, в каждом одно правило промокода.

Крюк перед шагом

Представь скалолаза на отвесной стене. Он не лезет сразу на десять метров. Сначала вбивает крюк чуть выше головы и цепляет к нему верёвку, потом делает шаг. Если сорвётся, пролетит не до земли, а до последнего крюка. Затем следующий крюк, следующий шаг.

Скалолаз не уходит далеко выше последнего крюка. Поэтому падение короткое. Подъём медленнее, зато каждый метр закреплён.

В программировании крюк это тест. Сначала ты пишешь тест на маленький кусок поведения, которого ещё нет. Потом пишешь код ровно до этого крюка. Если дальше что-то сломаешь, тест покраснеет и покажет место поломки.

урок из курса

Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.