Symfony Projekt PHPUnit TestabdeckungPHPUnit für meine Usercontroller deckt nicht alle Linien
Usercontroller
public function userEdit($id, Request $request)
{
$user = $this->userRepository->findOneByCode($id);
if (!$user) {
throw new Exception("User not found!");
}
$userForm = $this->createForm(UserForm::class, $user);
$userForm->handleRequest($request);
if ($userForm->isSubmitted() && $userForm->isValid()) {
$this->userService->save($user);
return $this->redirectToRoute('user_list');
}
return $this->render(
'user/user.html.twig', [
'form' => $userForm->createView(),
]
);
}
TestUserController
public function testUserEdit()
{
$client = static::createClient();
$crawler = $client->request('GET', '/user/test/edit');
$formData = array(
'username' => 'test',
'email' => '[email protected]',
'roles' => 'ROLE_ADMIN'
);
$this->assertEquals(
200,
$client->getResponse()->getStatusCode()
);
$form = $this->factory->create(UserForm::class);
$object = User::fromArray($formData);
$form->submit($formData);
$this->assertTrue($form->isSynchronized());
$this->assertEquals($object, $form->getData());
$view = $form->createView();
$children = $view->children;
foreach (array_keys($formData) as $key) {
$this->assertArrayHasKey($key, $children);
}
}
Im UserEdit Verfahren wir, wenn Schleife haben. Aber wenn wir den PHPunit-Coverage-Test ausführen, wird die if-Schleife nicht ausgeführt. Die andere if-Schleife zum Senden ist ebenfalls nicht abgedeckt.
Was läuft schief und was kann ich tun, um den Test abzudecken? Dies ist auch die beste Lösung für Symfony Form Test, da ich neu bei PHPunit bin.
Das hat mein Problem nicht gelöst. Vielen Dank für Ihre Hilfe. – user8928150