Я новичок в единичном тесте и у меня есть одна функциямодульного тестирования контроллера Symfony2
/**
* Creates a new Blog entity.
*
* @Route("/", name="blog_create")
* @Method("POST")
* @Template("AppBundle:Blog:new.html.twig")
*/
public function createAction(Request $request)
{
$entity = new Blog();
$form = $this->createCreateForm($entity);
$form->handleRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();
return $this->redirect($this->generateUrl('blog_show', array('id' => $entity->getId())));
}
return array(
'entity' => $entity,
'form' => $form->createView(),
);
} // End of method
, который создает записи в базу данных. Проблема в том, что я не могу написать тестовый пример для проверки входных данных, представленных формой, даже я пытаюсь создать объект контроллера и передать в него объект. Я не знаю, как создать объект-контроллер в тестовом примере и как проверить форму ввода и просмотреть любую идею? I'm looking for a solution like this.
Может просто модульное тестирование только вашу проверки. – pazulx
Вы прочитали комментарий в начале этой статьи? Это не имеет смысла для модульных тестовых контроллеров. Попробуйте с функциональным тестом http://symfony.com/doc/current/book/testing.html#forms – Hpatoio
IMHO Я не считаю, что контроллеры единичных тестов неуместны. Функциональные тесты важны, но они не будут столь же хороши для тестирования целого набора граничных условий, функциональный тест лучше всего подходит для тестирования одного «счастливого» пути и одного «несчастливого» пути, эффективно проверяя, что «клей» между слоями работает , Теперь верно, что контроллеры должны быть максимально тонкими, поэтому логики не должно быть слишком много, но всегда есть некоторые, как видно из вопроса. Очевидно, что для этого существуют аргументы и против, но упорный «не делай этого» не так полезен, я думаю. – malte