Yii2 и функциональные тесты: как работать с тестовыми данными?

Всё про тестирование в Yii 2.0
Ответить
rumasterov
Сообщения: 17
Зарегистрирован: 2013.01.18, 19:00

Yii2 и функциональные тесты: как работать с тестовыми данными?

Сообщение rumasterov » 2016.01.19, 17:26

Всем привет. Использую Yii2 и Codeception, появился такой вопрос, как правильнее организовать работу с тестовыми данными в функциональных тестах?

Сейчас у меня есть дамп базы с тестовыми данными, который загружается после каждого теста. Но, уже столкнулся с проблемой, что поправил тестовые данные для нового теста, и старый перестал работать, потому что были добавлены новые тестовые данные и уже вернулся другой ответ на запрос.

Может как-то через фикстуры это можно решить? И загружать для каждого теста свой связанный набор данных?

В общем, интересно узнать кто как это решает именно в функциональных тестах, в unit тестах я использую фикстуры.

Аватара пользователя
ElisDN
Сообщения: 5406
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Yii2 и функциональные тесты: как работать с тестовыми данными?

Сообщение ElisDN » 2016.01.19, 18:39

В каждом тесте можно добавить новую запись -> проверить на ней -> сразу удалить. Или то же заполнение и очистку делать в __before() и __after(). В итоге тесты на добавление/редактирование другим тестам мешать не будут.

mastermind
Сообщения: 52
Зарегистрирован: 2013.07.10, 11:08

Re: Yii2 и функциональные тесты: как работать с тестовыми данными?

Сообщение mastermind » 2016.10.10, 15:46

А как сделать, чтобы была всегда демонстрационные данные, к примеру. Есть изначально какая та база данных. Нужно в итоге всегда базу при разворачивании проекта наполнять демонстрационными данными. Есть список ролей, сделал миграцию от даты такой, чтобы она была самой первой перед всеми уже ранее созданными миграциями. Вроде все нормально, но через время добавляют еще одну роль и получается пользователя нет. Как в этом случае поступать?

Аватара пользователя
ElisDN
Сообщения: 5406
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Yii2 и функциональные тесты: как работать с тестовыми данными?

Сообщение ElisDN » 2016.10.10, 15:50

mastermind писал(а):А как сделать, чтобы была всегда демонстрационные данные, к примеру.
Фикстурами.

mastermind
Сообщения: 52
Зарегистрирован: 2013.07.10, 11:08

Re: Yii2 и функциональные тесты: как работать с тестовыми данными?

Сообщение mastermind » 2016.10.10, 15:58

А их можно автоматизировать при инсталяции проекта? Вот, к примеру, есть у меня phpci, который сливает последние исходники, накатывает миграции и потом тестит. И есть сценарий, когда просто админ берет сливает исходники и поднимает проект. Фикстуры здесь как могут помощь? С учетом того, что есть таблица на которые есть миграции, есть таблицы на которых нет и я как бы делаю это самой первой миграцией.

Аватара пользователя
ElisDN
Сообщения: 5406
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Yii2 и функциональные тесты: как работать с тестовыми данными?

Сообщение ElisDN » 2016.10.10, 16:29

mastermind писал(а):А их можно автоматизировать при инсталяции проекта?
Как для рабочей базы миграции запускаются, так и для тестовой:

Код: Выделить всё

git pull
php yii migrate
php tests/codeception/bin/yii migrate
А фикстуры и так автоматизированы.

Просто посмотрите готовые встроенные тесты в yii2-app-advanced.

Ответить