laravel – Codeception,无法模拟ajax行为
我无法通过代码复制来复制ajax调用.
例如: $I->sendAjaxPostRequest('login/verify',array('name' => 'name','password' => 'password')); $I->seeResponseIsJson(); 不会引起任何错误.但另一方面,如果我做以下事情: $I->sendAjaxPostRequest('login/verify','password' => 'password')); $I->seeResponseIsJson(); $I->seeResponseContainsJson(['login_failed' => 1]); //or $I->grabDataFromJsonResponse('data.login_failed'); 它给了我这个错误:
我从上面的错误中理解的是,seeResponseContainsJson或grabDataFromJsonResponse在内部会将响应作为第二个参数传递给arrayHasArray.但看起来无论响应总是空的. 另外,如果我执行以下操作: $I->sendAjaxPostRequest('login/verify','password' => 'password')); var_dump($I->grabResponse()); 我收到这个var_dump(): object(CodeceptionMaybe)#753 (3) { ["position":protected]=> int(0) ["val":protected]=> NULL ["assocArray":protected]=> NULL } 使用Codeception,其他所有工作都按预期工作,我正在使用PhpBrowser. 解决方法
我确定这个答案对其他人来说没有多大用处,但我在google搜索类似的错误信息时登陆了这里:
ErrorException: Argument 2 passed to CodeceptionModuleREST::arrayHasArray() must be of the type array,null given 经过多次拉动之后,我发现我的控制器的一些调试输出(一个var_dump)导致返回的文档不是有效的JSON,并且使用$I-> seeResponseContainsJson()因此在内部抛出错误,因为响应不是不是有效的JSON 因此,确保控制器发送的响应是有效的JSON,并且此错误应该消失 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |