Тимур · бэкенд, #qa-antrakt
Две новости. Ручка
/admin/events/last-ordersна стенде отвечает 500, хотя тесты репозитория зелёные. А отчёт Саввы про «Ночь продаж» показал ноль заказов за первые 15 минут, и это тоже прошло тесты. Тесты репозитория гоняются на SQLite в памяти: быстро, без Docker, в CI ничего поднимать не надо. Зачем мне Postgres в тестах, если SQL везде один?
Вера Ланская · лид QA, #qa-antrakt
SQL не везде один. Покажи Тимуру, где SQLite ему соврал, и подними в тестах ту же базу, что на стенде.
В прошлом уроке ты наполнял базу данными и откатывал транзакцию после каждого теста. А в уроке 64 вынес запросы в отдельный слой. Остался вопрос, который мы обходили: откуда в тесте берётся сама база. У Глеба ответ был простой: sqlite3.connect(":memory:"). Сегодня разберём, почему он стоил двух багов, и заменим его настоящим Postgres в контейнере.
Репетиция на чужой сцене
Труппа театра на Литейном едет на гастроли. Репетирует она дома: сцена 12 метров, оркестровая яма у самого края. На гастролях сцена 9 метров. Танцор, который дома делал три шага до края, на премьере делает третий шаг в яму.
Репетиция была честной, только сцена не та. Тест на SQLite устроен так же: код честно проверяется, но на другой базе. Где базы совпадают, тест полезен. Где расходятся, он молчит, а иногда уверенно зеленеет на коде, который на проде не работает вовсе.
урок из курса
Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.