POST-запрос имеет $_SERVER['REQUEST_METHOD'] = 'GET' в тестировании кодов Yii2
Я пытаюсь написать несколько приемочных тестов для приложения 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...
Пожалуйста, помогите мне понять, почему это происходит.
0 ответов
Может быть, причина в CSRF?
Предупреждение: отключение CSRF позволит любому сайту отправлять POST-запросы на ваш сайт. В этом случае важно реализовать дополнительную проверку, такую как проверка IP-адреса или секретного токена.