У меня есть проект API, работающий на localhost: 8000, подключенный к тестовой базе данных, и у меня есть внешнее угловое приложение, работающее на localhost: 9000. Как сбросить базу данных после запуска каждого тестового примера переднего плана? Я использую Protractor для моего тестирования E2E на переднем конце. Я не хочу высмеивать или заглушать весь бэкэнд. Хотя это ускорит мой тест быстрее, однако, каждое взаимодействие с пользователем приведет к изменениям состояния сервера и последует еще несколько запросов на одни и те же конечные точки сервера, при этом эти конечные точки с разными результатами в разных точках могут быть слишком большим, чем просто говорить к реальному серверу. Я предпочел бы сбросить базу данных до начального состояния или сбросить все таблицы.Сбросить отдельные серверные службы при тестировании интерфейса
Один из возможных способов сделать это - написать мой тестовый пакет E2E для интерфейса в моем проекте API. Поскольку теперь он запускается бэкэндом-тестировщиком, он может легко сбросить базу данных до каждого тестового примера. Но я бы предпочел сохранить свои тесты в своем интерфейсном проекте, так как мой api также будет обслуживать других клиентов, а не только клиент браузера. И так как мой бэкэнд находится в php и использует Phpunit для тестирования, в то время как я использую Protractor для тестирования моего интерфейса, интеграция его в бэкэнд, похоже, немного неуместна.
Вы столкнулись с этой проблемой и каково ваше решение? Как вы координируете два проекта в своем тестировании E2E (или интеграции?)?
Я предполагаю, что одним из способов было бы обеспечить поддержку «сброса» в вашем бэкэнд и назвать этот API для каждого нового теста. –
@NewDev Звучит опасно. Но я думаю, вы можете защитить его, охраняя его проверкой среды. Другой способ - выяснить способ сброса базы данных в обратном вызове onPrepare для Protractor. Мне интересно, есть ли еще лучшие способы. Спасибо за ответ. – randomor
Абсолютно, это должно быть только в тестовой среде, а не в Prod :) Кстати, это все равно не подменяет насмешку, так как она не заменяет unit-testing, но для e2e иногда требуются такие вещи. –