0
我目前正在爲symfony2中的忘記密碼函數編寫一個PHPUnit測試用例。模擬郵件並設置爲容器
什麼即時試圖做的是這樣的:
- 模擬一個郵件類,並將其設置在控制器容器IM的測試。
這裏的模擬:
private function getMockMailer($return)
{
$mailer = $this->getMockBuilder('Swift_Mailer')
->disableOriginalConstructor()
->setMethods(array('send'))
->getMock();
$mailer->expects($this->any())
->method('send')
->with($this->anything())
->will($this->returnValue($return));
return $mailer;
}
傾銷模擬對象的回報: 「Mock_Swift_Mailer_02ed3dbc」,這是正確的。
但是,當我在控制器中轉儲郵件類,我得到「Swift_Mailer」這不是模擬對象。
這裏就是我如何設置郵件測試:
$container = static::$kernel->getContainer();
$mailer = $this->getMockMailer(true);
$container->set('mailer', $mailer);
$controller = new LoginController();
$controller->setContainer($container);
我用同樣的方法來模擬路由器和模板類,它工作得很好。梅勒是唯一一個給我這個問題的人。
任何想法表示讚賞,謝謝。
那是我最初的想法,使用setter和getter它,但我從思想上服務容器測試與控制器中使用的容器相同。顯然不是:)謝謝你的建議,我會用這種方法。 – eselskas