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