Тимур · бэкенд, #qa-antrakt
После истории с 40 000 писем я сдаюсь, тесты нужны. Вот
OrderService: списывает деньги через «ПлатиМ», сохраняет заказ и шлёт письмо. Покрой его тестами, только чтобы ни одной настоящей копейки и ни одного настоящего письма. И объясни заодно, чем мок отличается от стаба. Глеб моком называл всё подряд.
В прошлом уроке мы нашли у кода зависимости и договорились, что юнит-тест не ходит ни в сеть, ни в почту. Но сервису Тимура шлюз и почта нужны: без них он не работает. Значит, в тесте их кто-то должен заменить. Сегодня разберём, какие бывают заменители, чем они отличаются и как выбор заменителя решает, что тест способен поймать.
Дублёры на съёмочной площадке
Когда в фильме герой прыгает с крыши поезда, прыгает не звезда, а каскадёр. Зритель видит знакомую куртку и затылок, а режиссёру важно одно: сцена снята, и звезда цела.
На площадке заменяют не только звёзд. В зале на заднем плане сидят манекены: они нужны, чтобы кресла не пустовали, и на них никто не смотрит. У актёра массовки одна реплика, «Билетов нет», и её он скажет, кто бы ни спросил. Помощник режиссёра с блокнотом записывает, кто когда вышел и что сказал, а после дубля его можно расспросить. Улица в павильоне сделана из фанеры: по ней можно пройти, но за дверями домов пусто.
Каждый такой заменитель заменяет что-то настоящее, но делает это по-своему. В тестах ровно так же.
урок из курса
Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.