Как сделать POST-запрос в Codeception FunctionalTest с JSON Body - PullRequest
2 голосов
/ 21 июня 2019

Я использую Codeception с Yii2. Мне нужно сделать запрос POST с телом содержимого JSON. Я не хочу использовать модуль REST, потому что еще даже не смог его настроить. (Это длинная история ...)

Я смог написать фантастические тесты GET. Теперь с первым тестом POST я застрял.

  1. В Функциональном тесте есть метод $I->amOnPage([]), который может выполнять только запрос GET.
  2. sendAjaxPost не позволяет отправлять тело контента с POST.
  3. $I->sendPOST('api/xyz',"{\"xyz\":1}") также не работал, потому что Yii не получил никакого маршрута, поэтому вместо этого загрузил домашнюю страницу. Путь потерялся в стеках вызовов.
  4. Существует метод InnerBrowser->_loadPage, который позволяет мне выполнить запрос любым настраиваемым способом, но я не могу найти способ получить к нему доступ.

Есть ли способ получить доступ к InnerBrowser объекту из теста? Я пробовал $I->getModule('PhpBrowser')->_loadPage или $this->getModule('Yii2')

1 Ответ

0 голосов
/ 23 июля 2019

Вы можете использовать I-> SendAjaxPostRequest , который имеет аргумент массива со значениями POST для отправки с запросом.

...