Тимур · бэкенд, #qa-antrakt
Ок, в выгрузке два билета на 14Б. Но выгрузку делал человек руками, а я хочу видеть тест, который сам лезет в базу и падает. Только не как у Глеба: я открыл его
db_helpers.py, там пароль от базы строкой, SQL склеен f-строкой, и ни одно соединение не закрывается. Ночью стенд упёрся в лимит соединений, это тоже он.
В уроке 62 ты писал SQL руками и нашёл двойные продажи фестиваля. В уроке 63 решили, когда тесту честно смотреть в базу, а когда это проверка реализации. Теперь научим тест делать это самому: подключиться, спросить и закрыть за собой дверь. И устроим это так, чтобы SQL жил в одном месте, а тест читался как спецификация.
Окно выдачи в архиве
В городском архиве посетителей не пускают к стеллажам. Ты заполняешь бланк: фонд, опись, номер дела. Архивист сам идёт к полкам и выносит папку. Бланк одинаковый для всех, поля в нём подписаны, и никакая надпись в поле «номер дела» не заставит архивиста открыть сейф директора.
Теперь представь, что вместо бланка ты пишешь записку от руки: «принесите дело 14 из описи 3». А кто-то пишет: «принесите дело 14 и заодно все личные дела сотрудников». Архивист читает записку целиком и выполняет.
SQL, склеенный из строк, это записка от руки. Запрос с параметрами это бланк: текст запроса отдельно, значения в подписанных полях отдельно. А окно выдачи, через которое тесты общаются с базой, это слой запросов. О нём сегодня и речь.
урок из курса
Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.