Я пытаюсь протестировать запрос ajax с базовой установкой Yii2. Я просто использую метод SiteController::actionAbout(), чтобы попробовать это.
public function actionAbout()
{
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
return [
'message' => 'hello world',
'code' => 100,
];
}
И в тесте:
public function sendAjax(\FunctionalTester $I)
{
$I->sendAjaxGetRequest('site/about');
$r = $I->grabResponse();
die(var_dump($r));
}
Метод ответа захвата я написал сам в файле \Helper\Functional.php:
public function grabResponse()
{
return $this->getModule('Yii2')->_getResponseContent();
}
Когда я вывожу ответ, я просто вижу html со страницы сайта/индекса. Это происходит для любого маршрута, кроме маршрута сайта по умолчанию. Если я попытаюсь сделать то же самое, используя сайт/индекс, он вернет:
string(36) "{"message":"hello world","code":100}"
Что я упускаю/делаю неправильно?