Тимур · бэкенд, #antrakt-dev
Переписал корзину: вместо списка пар теперь словарь, место ищется без перебора. Поведение то же, мои ручные проверки зелёные. А у вас упало 14 тестов Глеба. Багов ноль. Я открыл тесты и не понял, что они проверяют. Если тесты краснеют каждый раз, когда я трогаю код, я перестану их запускать. Это не угроза, это прогноз.
Тимур прав в главном: тест, который краснеет без бага, команда быстро учится не замечать. А тест, которого не замечают, не поймает и настоящий баг. В прошлом уроке ты навёл порядок в наборе. Сегодня разберёмся, по каким признакам отличить тест, которому можно верить, и перепишем тесты корзины так, чтобы они пережили рефакторинг Тимура.
Пожарная сигнализация
В зале «Антракта» под потолком висят датчики дыма. Хороший датчик кричит, когда в зале пожар. Хороший датчик молчит, когда в буфете подгорел пирожок. Он кричит сразу, а не через час. И его легко проверить и сменить батарейку, не разбирая потолок.
Если датчик воет на каждый пирожок, администратор через неделю выдернет его из розетки. А потом в зале начнётся настоящий пожар.
У теста те же четыре заботы: ловить баги, не кричать без бага, отвечать быстро и не требовать ремонта по любому поводу. Тесты Глеба воют на пирожки.
урок из курса
Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.