在項目中,我有我的一塊形式發送一個AJAX請求:的Symfony如何測試一個AJAX請求
$.ajax({
url: '/bio_control/sample',
type: 'POST',
dataType: 'json',
data: {sample_number: $(input_field).val()},
});
激活以下控制器方法:
/**
* @Route("/bio_control/sample", name="get_bio_control_sample")
*/
public function getBioControlSampleAction(Request $request)
{
$sample_number = $request->request->get('sample_number');
/**
* Additional logic not shown for brevity.
*/
$user_id = $user->getId();
$response = array("code" => 100, "success" => true, "sample_number" => $sample_number, "sample_data" => $sample[0], "new_user" => false, "user_id" => $user_id);
return new JsonResponse($response);
}
我會喜歡能夠單獨測試這個請求,但我不確定如何編寫請求對象。
到目前爲止,我的第一次嘗試:
public function testGetBioControlSample()
{
$helper = $this->helper;
$client = $this->makeClient();
$crawler = $client->request('POST', "/bio_control/sample", array(), array('sample_number' => 67655), array(
'CONTENT_TYPE' => 'application/json',
'HTTP_X-Requested-With' => 'XMLHttpRequest'
));
$this->assertStatusCode(200, $client);
}
失敗,因爲它似乎是提交表單(我得到相關的表單字段完全無關的AJAX請求是空白的錯誤)。
任何人都可以演示如何正確編寫這樣的測試?
我使用相同的包,並且在使用相同流程的所有其他測試中都進行了身份驗證。但是,我嘗試了你的語法,它完美的工作 - 所以謝謝! – Darkstarone
不客氣。 –