【发布时间】:2017-09-13 09:24:55
【问题描述】:
我正在尝试测试在控制器中执行不同操作的路由,无论请求是否为 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());
}
当我运行测试并转储响应时,我得到了“非 ajax”——我猜这是有道理的,因为 $this->json() 只是期待得到一个 json 响应,而不是必须发出ajax请求。但是我怎样才能正确地测试呢?我一直在评论...
// if($request->ajax(){
...need to test this code
// }else{
// ...
// }
每次我需要对该部分代码运行测试时。我想我正在寻找如何在我的测试用例中发出 ajax 请求......
【问题讨论】: