我在單元測試用例新我有一個功能控制器單元測試的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