1
我有一個包含類似下面的一些代碼控制器動作中使用:如何嘲笑學說服務控制器動作時學說別處
$repository = $this->get("doctrine")->getRepository(User::class);
$user = $repository->findOneBy(array('username' => $request->request->get("username")));
我想嘲笑庫。起初,我不知道該怎麼做,但後來我發現這個SO帖子:Testing Controllers in Symfony2 with Doctrine
從那裏的答案,我推測,我應該創建一個模擬的教條服務和存儲庫對象,並告訴mockbuilder存儲庫對象返回我想測試的實體。然後,我應該使用下面的代碼行替換學說服務:
$client->getContainer()->set("doctrine", $doctrineMockObject);
,然後發出請求:
$client->request("POST", "/checkUsername");
的問題,這是有實際調用單獨的樹枝模板控制器的行爲,而且該行爲也使用原則。所以這會導致應用程序中斷,因爲它使用了我注入到容器中的模擬教義對象。
有沒有什麼辦法只爲我正在測試的操作使用模擬教義服務?否則,有沒有其他方法可以做我想做的事情?我沒有想法。