我正在测试一个大型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