Я не могу реплицировать вызовы ajax через кодирование.
Например:
$I->sendAjaxPostRequest('login/verify', array('name' => 'name', 'password' => 'password'));
$I->seeResponseIsJson();
Ошибок не возникнет. Но с другой стороны, если я сделаю следующее:
$I->sendAjaxPostRequest('login/verify', array('name' => 'name', 'password' => 'password'));
$I->seeResponseIsJson();
$I->seeResponseContainsJson(['login_failed' => 1]);
//or
$I->grabDataFromJsonResponse('data.login_failed');
Это дает мне эту ошибку:
ErrorException: аргумент 2, переданный в Codeception \ Module \ REST :: arrayHasArray (), должен иметь тип array, заданный null, вызываемый в C: \ xampp \ htdocs \ blog \ laravel \ vendor \ codeception \ codeception \ src \ Codeception \ Module \ REST.php в строке 485 и определен
Из приведенной выше ошибки я понимаю, что seeResponseContainsJson или grabDataFromJsonResponse внутренне передают ответ в качестве второго аргумента в arrayHasArray. Но похоже, что ни на что ответ всегда пустой.
Кроме того, если я сделаю следующее:
$I->sendAjaxPostRequest('login/verify', array('name' => 'name', 'password' => 'password'));
var_dump($I->grabResponse());
Я получаю это для var_dump ():
object(Codeception\Maybe)#753 (3) {
["position":protected]=>
int(0)
["val":protected]=>
NULL
["assocArray":protected]=>
NULL
}
Все остальное работает с Codeception, я использую PhpBrowser.