PHPUnit测试SwiftMail中的Send Method参数

时间:2012-10-23 21:10:13

标签: php phpunit swiftmailer

也许我过于复杂了,但是我有一个电子邮件对象被另一个类调用,而Email类使用了一个Swift Mailer实例。

$email = Email::instance();
$mailer = $this->getMock('Swift_Mailer', array('send'), array(new \Swift_NullTransport()));
$email->setTransport($mailer);
$mailer->expects($this->once())
    ->method('send');
$model->sendEmail('user_email@test.com');

如上所述,我可以轻松测试是否调用了send方法并正确确认是否正在发送电子邮件,但是,我需要测试与邮件发送的Swift Mailer消息中的主题。

$email = Email::instance();
$mailer = $this->getMock('Swift_Mailer', array('send'), array(new \Swift_NullTransport()));
$email->setTransport($mailer);
$mailer->expects($this->once())
    ->method('send')
    ->with($this->equalTo('new email subject'));

显然这不起作用,并且会抛出很多错误。

关于我如何测试这个的任何想法?

1 个答案:

答案 0 :(得分:0)

找到了解决方法。

我正在模拟模型并测试传递给调用Email Object类的函数的params,而不是测试Swift Mail的内容。

绝对不漂亮,但它会解决上面的具体问题。