无法在功能测试中设置表单值

时间:2013-09-14 16:41:14

标签: symfony phpunit

我目前正在做这个教程:http://tutorial.symblog.co.uk/docs/testing-unit-and-functional-phpunit.html我在“测试联系页面”部分。

我们已经定义了一个名为testContact()http://pastebin.com/PtzwY7PJ的测试(由我编辑,输出的内容导致相同的错误)

如果我运行测试,我会收到错误消息。 InvalidArgumentException:无法访问的字段“name”

如果我在页面上发送表单,我可以通过symfony工具栏捕获,所以我认为,表单可以正常工作。

继承$ form的转储对象:http://pastebin.com/n8MyHEfy

谢谢!

2 个答案:

答案 0 :(得分:3)

表单名为' contact'现在,所以你需要:

    // Select based on button value, or id or name for buttons
    $form = $crawler->selectButton('Submit')->form();

    $form['contact[name]']       = 'name';
    $form['contact[email]']      = 'email@email.com';
    $form['contact[subject]']    = 'Subject';
    $form['contact[body]']       = 'The comment body must be at least 50 characters long as there is a validation constrain on the Enquiry entity';

    $crawler = $client->submit($form);

答案 1 :(得分:0)

不应该是这样的吗?

$form = $crawler->selectButton('Submit')->form(array(
        'blogger_blogbundle_enquirytype[name]' =>'name'
    ));