Как применять фикстуры для приемочных тестов?

Всё про тестирование в Yii 2.0
Ответить
undestroyer
Сообщения: 120
Зарегистрирован: 2014.01.06, 13:46

Как применять фикстуры для приемочных тестов?

Сообщение undestroyer »

Создаю API, в нем есть метод авторизации
/site/login
, в котором пользователь получает токен авторизации. Для остальных запросов нужно использовать этот токен и передавать его как HTTP. Логика подсказывает, что мои приемочные тесты должны либо:
1) Каждый раз выполнять авторизацию и брать актуальный токен авторизации
либо
2) получать токен из базы (фикстуры?) и использовать его в работе.

Первый подход мне не нравится потому что не хочу просто так при каждом запросе делать авторизацию. Второй подход я не знаю как сделать в рамках приемочных тестов. Не понимаю какие методы нужно использовать для встраивания фикстуры в приемочный тест. Подскажите как это сделать правильно.
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Как применять фикстуры для приемочных тестов?

Сообщение Nex-Otaku »

В шаблоне app-advanced уже есть готовый тест на авторизацию и к нему как раз идёт готовая фикстура БД для создания тестового аккаунта пользователя. Используйте её, либо разберите как она работает, и сделайте аналогичную.
undestroyer
Сообщения: 120
Зарегистрирован: 2014.01.06, 13:46

Re: Как применять фикстуры для приемочных тестов?

Сообщение undestroyer »

Nex-Otaku писал(а): 2017.11.16, 16:58 В шаблоне app-advanced уже есть готовый тест на авторизацию и к нему как раз идёт готовая фикстура БД для создания тестового аккаунта пользователя. Используйте её, либо разберите как она работает, и сделайте аналогичную.
В шаблоне app-advanced нет приемочных тестов на авторизацию. Только Unit. В unit тесты я понимаю как подключить фикстуру, но как это сделать для приемочных тестов API?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как применять фикстуры для приемочных тестов?

Сообщение ElisDN »

undestroyer писал(а): 2017.11.17, 13:22 В шаблоне app-advanced нет приемочных тестов на авторизацию. Только Unit.
В Functional есть.
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Как применять фикстуры для приемочных тестов?

Сообщение Nex-Otaku »

В приёмочных тестах также всё подключается через конфиги тестового окружения.
undestroyer
Сообщения: 120
Зарегистрирован: 2014.01.06, 13:46

Re: Как применять фикстуры для приемочных тестов?

Сообщение undestroyer »

ElisDN писал(а): 2017.11.17, 14:36
undestroyer писал(а): 2017.11.17, 13:22 В шаблоне app-advanced нет приемочных тестов на авторизацию. Только Unit.
В Functional есть.
Да, в Functional есть пример работы с фикстурой, но в нем невозможно отправить POST запрос на API.
В AcceptanceTesterActions есть метод sendPOST(), чего нет в FunctionalTesterActions. Хотя в FunctionalTesterActions есть метод grabFixture, которого нет в AcceptanceTesterActions.
undestroyer
Сообщения: 120
Зарегистрирован: 2014.01.06, 13:46

Re: Как применять фикстуры для приемочных тестов?

Сообщение undestroyer »

Nex-Otaku писал(а): 2017.11.18, 19:39 В приёмочных тестах также всё подключается через конфиги тестового окружения.
Можно пример, как через конфиг тестового окружения настроить фикстуру? Скорее вы предлагаете использовать СУБД с тестовой базой, но это неудобно, т.к. для выполнения большого количества запросов к методам, доступным только авторизованным пользователям, придется каждый раз вызывать авторизацию. Я хочу отдельно тестировать авторизацию, отдельно работу с данными.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как применять фикстуры для приемочных тестов?

Сообщение ElisDN »

undestroyer писал(а): 2017.11.22, 07:45 Хотя в FunctionalTesterActions есть метод grabFixture, которого нет в AcceptanceTesterActions.
Пропишите part: [init, orm, fixtures] в acceptance.suite.yml и такие же методы появятся в приёмочных.
undestroyer
Сообщения: 120
Зарегистрирован: 2014.01.06, 13:46

Re: Как применять фикстуры для приемочных тестов?

Сообщение undestroyer »

ElisDN писал(а): 2017.11.22, 08:58
undestroyer писал(а): 2017.11.22, 07:45 Хотя в FunctionalTesterActions есть метод grabFixture, которого нет в AcceptanceTesterActions.
Пропишите part: [init, orm, fixtures] в acceptance.suite.yml и такие же методы появятся в приёмочных.
Спасибо Дмитрий и Nex-Otaku! Все действительно решилось этой строчкой конфигурации.
Ответить