gpt4 book ai didi

php - 在功能测试中使用 ajax 提交表单

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:08:14 25 4
gpt4 key购买 nike

我正在为项目的铭文部分创建一个功能测试,如果表单需要进入 ajax 请求,我需要知道如何测试它,否则服务器将始终返回一个空的铭文表单。

看起来 submit 方法不接受指定它是否是 ajax 请求的参数,这与请求方法不同 -> http://api.symfony.com/2.3/Symfony/Component/HttpKernel/Client.html#method_submit

谢谢

更新1

////////////////////////////////////////////////
// My functional test looks exactly like this //
////////////////////////////////////////////////
$form = $buttonCrawlerNode->form(array(
'name' => 'Fabien',
'my_form[subject]' => 'Symfony rocks!',
));
// There is no way here I can tell client to submit using ajax!!!!
$client->submit($form);

// Why can't we tell client to submit using ajax???
// Like we do here in the request méthod
$client->request(
'GET',
'/post/hello-world',
array(),
array(),
array('HTTP_X-Requested-With' => 'XMLHttpRequest')
);

最佳答案

Symfony Request Object intercept an XmlHttpRequest在请求的 header 中。因此,只需在测试类中将正确的 header 添加到您的请求中,例如:

class FooFunctionalTest extends WebTestCase
{
$client = static::CreateClient();
$url = '/post/hello-world';
// makes the POST request
$crawler = $client->request('POST', $url, array(
'my_form' => array(
'subject' => 'Symfony rocks!'
)),
array(),
array(
'HTTP_X-Requested-With' => 'XMLHttpRequest',
)
);
}

希望对你有帮助

关于php - 在功能测试中使用 ajax 提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29956053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com