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

Тестовые данные: фабрики и строители

junior~35 мин

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

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

Ночью снова упал test_create_user: 409, логин занят. Перезапустили, зелёный. Это третий раз за месяц, и никто не может повторить. В отчёте логин kQzPa, ни о чём не говорит. Посмотри, откуда у Глеба берутся данные для тестов, и сделай так, чтобы по упавшему тесту было понятно, что в нём было.

В прошлом уроке ты приручил часы и случайность: заморозил время и дал генератору сид. Сегодня очередь самих данных, на которых бегут тесты. Пользователи, заказы, промокоды. Разберёмся, откуда их брать, чтобы тест читался с одного взгляда, не падал по воле случая и не ломался от правки чужого теста.

Реквизиторский цех

В театре есть реквизиторский цех. На полках стоят заготовки: стул, чашка, письмо в конверте. Режиссёру нужен стул со сломанной ножкой для третьего акта. Он не просит «стул номер 4817 из дальнего угла» и не строгает стул сам. Он говорит: «обычный стул, только с надломленной ножкой». Реквизитор берёт стандартный стул и меняет одну деталь.

Зрителю из зала видна эта деталь. Что у стула за обивка и какого года выпуска, неважно. Важно, что ножка сломана, потому что на этом построена сцена.

Тестовым данным нужен такой же цех. Тест просит «обычный заказ, только VIP и на пять билетов». Всё остальное берётся по умолчанию, валидное и скучное. А в тексте теста видно ровно то, на чём построена проверка.

урок из курса

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

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