我想测试一个路由,在控制器中执行不同的操作,无论请求是否是ajax。
public function someAction(Request $request)
{
if($request->ajax()){
// do something for ajax request
return response()->json(['message'=>'Request is ajax']);
}else{
// do something else for normal requests
return response()->json(['message'=>'Not ajax']);
}
}
我的测试:
public function testAjaxRoute()
{
$url = '/the-route-to-controller-action';
$response = $this->json('GET', $url);
dd($response->dump());
}
当我运行测试,只是甩我找回响应“不阿贾克斯 - 这是有道理我猜原因$这个 - > JSON()只是期待返回一个json响应,不一定会发出ajax请求。但是我怎样才能正确地测试这个?我一直在评论...
// if($request->ajax(){
...need to test this code
// }else{
// ...
// }
每次我需要运行该部分代码的测试。我在寻找如何让我的测试情况下,我想一个Ajax请求......
这提出一个要求,但它不具备其他功能测试如, - > assertStatus(200)和 - > decodeResponseJson() – cmac
您通过显示第三个参数是[“X-Requested-With”=>“XMLHttpRequest”] $ this-> get()和$ this-> post()也除外,并且它们从任何类组成的所有laravels测试内容中延伸...所以,谢谢! – cmac