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

Свойства хорошего теста

junior~30 мин

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

Тимур · бэкенд, #antrakt-dev

Переписал корзину: вместо списка пар теперь словарь, место ищется без перебора. Поведение то же, мои ручные проверки зелёные. А у вас упало 14 тестов Глеба. Багов ноль. Я открыл тесты и не понял, что они проверяют. Если тесты краснеют каждый раз, когда я трогаю код, я перестану их запускать. Это не угроза, это прогноз.

Тимур прав в главном: тест, который краснеет без бага, команда быстро учится не замечать. А тест, которого не замечают, не поймает и настоящий баг. В прошлом уроке ты навёл порядок в наборе. Сегодня разберёмся, по каким признакам отличить тест, которому можно верить, и перепишем тесты корзины так, чтобы они пережили рефакторинг Тимура.

Пожарная сигнализация

В зале «Антракта» под потолком висят датчики дыма. Хороший датчик кричит, когда в зале пожар. Хороший датчик молчит, когда в буфете подгорел пирожок. Он кричит сразу, а не через час. И его легко проверить и сменить батарейку, не разбирая потолок.

Если датчик воет на каждый пирожок, администратор через неделю выдернет его из розетки. А потом в зале начнётся настоящий пожар.

У теста те же четыре заботы: ловить баги, не кричать без бага, отвечать быстро и не требовать ремонта по любому поводу. Тесты Глеба воют на пирожки.

урок из курса

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

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