Codeception организация тестирования приемочных тестов
Проект создан на symfony4 с недавних пор начали внедрять в приложение тесты unit и acceptance. Для этого выбрали Codeception и selenium для приемочных тестов.
Приемочными тестами будет тестироваться админка, в которой много страниц со списками, добавлением, фильтрами и тд. Так как приемочные тесты тестируют то что видит пользователь, то в админке не протестируешь например списки с данными, так как данные будут меняться.
Каким образом организовывается правильно тестирование приемочных тестов?
Я думаю что следует создать ещё одну бд в которой продублировать таблицы и подготовить для них фикстуры(тестовые данные), и проверять уже по ним. Так как тестовых данных придётся создать очень много (проект уже большой), то я решил сначала спросить совета у вас чтобы не наделать лишнего что не будет оправдано.
Подскажите как бы вы сделали в таком случае?
Ответы (1 шт):
Я думаю что следует создать ещё одну бд в которой продублировать таблицы и подготовить для них фикстуры(тестовые данные), и проверять уже по ним.
Все верно. Именно так я советую вам поступить.
Чтобы написать нормальные приемочные тесты вам надо четко знать, что на момент запуска теста находится в бд - фикстуры нужны именно для этого.
Вам нужен минимальный объем данных в бд. Минимум, который необходим для прохождения теста. Если тестовая бд будет больших объемов - тесты будут проходить долго. Хороший тест - независим от предыдущего теста - то есть может быть запущен отдельно. Это значит, что очищать тестовую бд и накатывать фикстуры заново вам придется перед каждым тестом. Скорость - одна из проблем приемочных тестов.
Поддерживать тестовую бд не так сложно. При каждом обновлении структуры базы надо прогонять миграции еще и на тестом дампе.