Size: a a a

2020 September 17

RT

Roman Tsurkanu in Yii Framework 3
не обязательно, может быть и одна
источник

RT

Roman Tsurkanu in Yii Framework 3
как настроишь
источник

RT

Roman Tsurkanu in Yii Framework 3
у них же 2 разных конфига
источник

СП

Сергей Предводителев... in Yii Framework 3
Я для приёмочных делал миграции из приложения и так получал исходную БД. А для интеграционных чтобы она очищалась, нужно дамп использовать выходит
источник

RT

Roman Tsurkanu in Yii Framework 3
я делал один дамп для всех тестов, пустой
источник

RT

Roman Tsurkanu in Yii Framework 3
каждый тест наполнял как ему нравилось
источник

RT

Roman Tsurkanu in Yii Framework 3
после каждого теста накатывался опять пустой дамп
источник

СП

Сергей Предводителев... in Yii Framework 3
И после каждой новой миграции - дамп обновлять?
источник

RT

Roman Tsurkanu in Yii Framework 3
да
источник

СП

Сергей Предводителев... in Yii Framework 3
Да, с таким подходом можно в одной БД
источник

RT

Roman Tsurkanu in Yii Framework 3
я не знаю как другие, я не то чтобы каждый день структуру бд менял)
источник

RT

Roman Tsurkanu in Yii Framework 3
по этому не напрягало
источник

СП

Сергей Предводителев... in Yii Framework 3
Спасибо! Буду дальше разбираться :)
источник

В

Виктор in Yii Framework 3
Я перед тестами миграции накатываю, а тесты провожу внутри транзакций. Чутье подсказывает, что так можно напороться, но пока все хорошо)
источник

В

Виктор in Yii Framework 3
На новом проекте осваиваю чуть другой подход. Тестирую апи бехатами. Перед ними накатываю миграции, а внутри тестов использую апи как клиентское приложение. Т.е. если мне надо притвориться авторизованным пользователем, то в рамках теста я пользователя регистрирую, авторизуюсь под ним и сохраняю заголовок с токеном авторизации для последующих запросов.
источник

В

Виктор in Yii Framework 3
На большом проекте это будет работать долго, конечно. В одной большой компании для ускорения таких кейсов сделали отдельное апи специально для тестов, которое, например, создаёт юзера и сразу возвращает его токен авторизации, а тесты экономят таким образом запрос. И часть бизнес-логики в таких эндпоинтах не используется (тоже для ускорения).
Конечно, тут тоже есть минусы вроде поддержки отдельного апи. Но это же - и способ тестирования всякой асинхронной логики (напр., в той же конторе есть эндпоинт, который не отдает ответ до тех пор, пока не пересчитается определенный индекс сфинкса).
источник

СП

Сергей Предводителев... in Yii Framework 3
Виктор
Я перед тестами миграции накатываю, а тесты провожу внутри транзакций. Чутье подсказывает, что так можно напороться, но пока все хорошо)
Интересный подход) А в коде это как выглядит, в каждом тесте транзакция и ролбэк?
источник

В

Виктор in Yii Framework 3
Сергей Предводителев
Интересный подход) А в коде это как выглядит, в каждом тесте транзакция и ролбэк?
setUp/tearDown
источник

СП

Сергей Предводителев... in Yii Framework 3
Виктор
setUp/tearDown
Понял, спасибо :)
источник

ES

Eugene She in Yii Framework 3
Сергей Предводителев
Я для приёмочных делал миграции из приложения и так получал исходную БД. А для интеграционных чтобы она очищалась, нужно дамп использовать выходит
Могу скинуть класс который генерит тестовую базу. Берет схему с основной базы и накатывает в тестовую.
источник