我是单元测试用例的新手,我有一个功能
/**
* 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
答案 0 :(得分:0)
也许尝试将Controller实例化为部分模拟。这将允许您“覆盖”某些功能,在本例中为
您可以覆盖这些方法并让它们返回模拟版本或测试控制的对象。在重定向的情况下,您可以给出方法期望。
$controller = $this->getMock(
'MyController',
array(
'createCreateForm',
'redirect',
'getDoctrine',
'generateUrl'
)
);