我在单元测试用例新我有一个功能控制器单元测试的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
恕我直言,我不相信单元测试控制器是不合适的。功能测试很重要,但对于测试整套边界条件来说它们不会很好,功能测试最适合测试一条“快乐”路径和一条“不快乐”路径,从而有效地测试层之间的'胶水'是否正常工作。现在控制器应该尽可能地瘦,所以不应该有太多的逻辑,但总是有一些,如问题所见。 有明显的赞成和对此,但一个空白的“不这样做”是没有那么有用,我认为。 – malte