【问题标题】:Testing event send email in Laravel在 Laravel 中测试事件发送电子邮件
【发布时间】:2017-09-22 17:28:31
【问题描述】:

我正在为我的 Laravel 项目中的忘记密码功能创建一个 RESTFUL API。我写完了。

但是,我不知道如何构建单元测试来测试发生的事件发送电子邮件?

如何构建它?

【问题讨论】:

  • 这是一个很好的问题,但如果您可以发布任何代码,将会得到增强。您通常不会编写发送电子邮件的单元测试(您希望您的单元测试开始发送电子邮件吗?)但是验证发送电子邮件的请求是否正确提出并使用正确的正文/主题等可能很有用跨度>
  • 谢谢@mark_h,是的,我想验证发送电子邮件的请求是否正确提出。我如何编码?

标签: laravel unit-testing phpunit


【解决方案1】:
$mock = Mockery::mock('Swift_Mailer');
$this->app['mailer']->setSwiftMailer($mock);
$mock->shouldReceive('send')->once()
    ->andReturnUsing(function($msg) {
        $this->assertEquals('My subject', $msg->getSubject());
        $this->assertEquals('foo@bar.com', $msg->getTo());
        $this->assertContains('Some string', $msg->getBody());
    });

你可以看到: Laravel unit testing emails

【讨论】:

  • 感谢您的回复。使用此代码片段,在运行测试用例时,会出现错误:“Mockery\Exception\InvalidCountException:来自 Mockery_0_Illuminate_Support_Testing_Fakes_MailFake 的方法 send() 应该被准确调用 1 次,但被调用 0 次。”
猜你喜欢
  • 2014-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-22
  • 1970-01-01
  • 1970-01-01
  • 2019-03-12
相关资源
最近更新 更多