POST-запрос имеет $ _SERVER ['REQUEST_METHOD'] = 'GET' в тестировании кодов Yii2 - PullRequest
0 голосов
/ 20 октября 2018

Я пытаюсь написать несколько приемочных тестов для приложения yii2.

У меня в SiteController есть действие, включающее следующий фрагмент кода:

if (!Yii::$app->request->isPost) {
        throw new NotFoundHttpException('Unexpected GET method');
    }

Когда я 'я пытаюсь проверить это действие - оно всегда НЕУДАЧИЛО, потому что мои POST-запросы не прошли эту проверку Yii :: $ app-> request-> isPost.У них всегда есть $ _SERVER ['REQUEST_METHOD'] = 'GET' вместо POST.

Я пробовал следующие варианты:

$I->sendPOST($url, $options)

$I->sendAjaxPostRequest($url, $options)

Также я пытался выполнять настраиваемые действия в Helper, как этот

public function makePOST($url, $params = []) {
    $this->getModule('PhpBrowser')->_loadPage('POST', $url, $params);
}

А потом позвони из моего теста.Во всех случаях я получаю запрос GET вместо POST ...

Пожалуйста, помогите мне понять, почему это происходит.

1 Ответ

0 голосов
/ 22 января 2019

Может быть, причина в CSRF?

Документация Yii2 CSRF

Предупреждение: отключение CSRF позволит любому сайту отправлять POST-запросы на ваш сайт.В этом случае важно реализовать дополнительную проверку, такую ​​как проверка IP-адреса или секретного токена.

...