Symfony 3.4& PHPUnit"参数2必须是数组类型,null给出"在功能测试期间

时间:2018-06-01 13:26:25

标签: php symfony phpunit functional-testing symfony-3.4

我正在测试一个大型Web应用程序并且已经使用PHPUnit一段时间来执行功能测试。测试表格通常很简单,但最近有一个我无法解决的问题。

以下是测试路线的HTML:

# journalctl -u kubelet

以下是有问题的测试:

 <html><head></head><body><section class="panel">
Textarea
  <div class="panel-body">
    <div class="widget-content">
        <form action="/order/order-line/save/2144/0/0" method="POST" novalidate="">                             
          <div class="form-horizontal group-form-display-fix">
            <input type="hidden" id="_productId" name="0[productId]" value="68234">    <div class="form-group"><div class="col-sm-4"><label class="required"><span class="required-asterisk" title="This field is required">*</span>
                        Textarea 
    </label></div><div class="col-sm-8 form-input"><div id="_1099" data-groupid="1099"><div class="form-group"><div class="col-sm-4"><label for="_1099_textarea" class="">
                    Textarea/ 
    </label></div><div class="col-sm-8 form-input"><textarea id="_1099_textarea" name="0[1099][textarea]" class="textarea">qreqwrwqrqe</textarea></div></div></div></div></div>
                </div>

测试给出错误:

  

TypeError:参数2传递给   CaseManager \包\ OrderBundle \管理\ AnswerManager :: buildAndSaveNewAnswers()   必须是类型数组,null给定,调用   /software/src/Software/Bundle/OrderBundle/Controller/OrderLineController.php   在第2580行

控制器中的相关代码如下:

public function testTextQuestion() 
{
  $this->client->followRedirects();
  $crawler = $this->client->request('GET', '/order/order-line/get-view/2144/0/406?_=1526296674384');
  $form = $crawler->selectButton('Save')->form();
  $form['0[1099][textarea]']->setValue('test nonsense');
  $crawler = $this->client->submit($form);
  $this->assertContains('Instruction details updated', $this->client->getResponse()->getContent());
}

看起来并没有得到&#39; 0&#39;提供NULL。 POST请求正常,当手动测试路由时,一切正常,所以我很难过。

使用Symfony 3.4和PHPUnit 6.5.8

0 个答案:

没有答案