Вера Ланская · лид QA, #qa-antrakt
Вчера «ПлатиМ» вернул одному зрителю деньги дважды: Тимур правил возвраты, и команда
refundстала уходить два раза. Бухгалтерия заметила через сутки. У Глеба естьtest_refund, и он всё это время был зелёным. Он и сейчас зелёный. Второй тест,test_tickets, наоборот, краснеет от любой правки Тимура, и Тимур его уже не запускает. Один тест молчит при баге, другой кричит без бага. Почини оба.
В прошлом уроке ты разложил двойников по полкам: заглушка отвечает, шпион записывает, мок проверяет вызовы, фейк работает по-настоящему, но в памяти. Сегодня берём в руки настоящие инструменты, unittest.mock и vi.fn, и учимся главному: что у зависимости проверять, а что нет. Ошибиться можно в обе стороны, и у Глеба есть пример каждой.
Буфет в антракте
В антракте в буфете «Антракта» работает буфетчица Зоя. Зритель просит два эклера и чай: это команда, после неё мир меняется. Другой зритель спрашивает, есть ли кофе без кофеина: это вопрос, после него ничего не меняется. Зоя тоже кое-что делает сама. Она говорит на кухню «ещё десяток эклеров», это её команда наружу. И спрашивает кухню, остался ли сыр, это её вопрос наружу.
Допустим, ты проверяешь работу Зои. Что смотреть? Получил ли зритель свои эклеры и правильную сдачу: это результат. Ушёл ли на кухню заказ на десять эклеров, а не на сто: от этого зависит, чем буфет будет торговать завтра. А сколько раз Зоя спросила кухню про сыр, раз или три, тебе всё равно. Важно, что сыр в бутерброде есть.
Проверку Зои по числу вопросов про сыр назовут придиркой. С тестами так же: тест, который считает вопросы, краснеет без бага. А тест, который не смотрит на заказ кухне, пропустит заказ на сто эклеров.
урок из курса
Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.