このユニットテストを実行しようとすると 私は問題があります これは私の関数testErrors
です。エラーユニットテストsymfony
public function testErrors(){
$client = static::createClient();
$crawler = $client->request('GET', '/add');
$form = $crawler->selectButton('save')->form(array(
'user[firstName]' => 'test1',
'user[lastName]' => 'test',
'user[email]' => '[email protected]',
));
$crawler = $client->submit($form);
// 3 errors
$this->assertTrue($crawler->filter('.error_list')->count() == 3);
// Error firstName field
$this->assertTrue($crawler->filter('#firstName')->siblings()->first()->filter('.error_list')->count() == 1);
// Error lasName field
$this->assertTrue($crawler->filter('#lastName')->siblings()->first()->filter('.error_list')->count() == 1);
// Error email field
$this->assertTrue($crawler->filter('#email')->siblings()->first()->filter('.error_list')->count() == 1);
}
私はこの問題に
InvalidArgumentExceptionを持っている:現在のノードリストは空です。
これは、私はそれはあなたにエラーを与えるもの、あなたのselectButton('save')
だと思う私のコントローラ
/**
* @Route("/add", name="addPage")
*/
public function AddAction(Request $request)
{
$user = new User();
$form = $this->createFormBuilder($user)
->add('email', TextType::class)
->add('firstName', TextType::class)
->add('lastName', TextType::class)
->add('save', SubmitType::class, array('label' => 'Add'))
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$firstName = $form['firstName']->getData();
$lastName = $form['lastName']->getData();
$email = $form['email']->getData();
$user->setFirstName($firstName);
$user->setLastName($lastName);
$user->setEmail($email);
$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->flush();
$this->addFlash('notice','user added');
return $this->redirectToRoute('listPage');
}
の代わりにボタンラベル
Add
で試してください。このステートメント/ラインでこのエラーが発生しますか? – Matteoと、なぜ制約がない場合にフォームが3つの検証エラーを受け取ると予想されるのですか? – Matteo
この行のエラー "")); "ユーザ名[=]" => "test1"、 'user [lastName]' => 'テスト'のように、この文では$ form = $ crawler-> selectButton( 'save') - > form(array( ' 、 'user [email]' => '[email protected]'、 )); –