我想測試一個路由,在控制器中執行不同的操作,無論請求是否是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