[英]Laravel test email was sent with delay
是否可以编写测试以确保发送的 email 有延迟? 我能够测试它是否已被推送到队列中,但我想确保邮件中的逻辑发送正确的 email。 这就是我所拥有的,assertPushed 有效,但 assertSent 返回失败。
这就是我在 controller 中运行工作的方式;
ProcessEmailJob::dispatch($this, $user)
->delay(now()->addMinutes(10));
这是测试
Queue::fake();
Mail::fake();
// processing here
Queue::assertPushed(ProcessEmailJob::class, function ($job) {
return ! is_null($job->delay);
});
Mail::assertSent(EmailUserMail::class);
在作业处理程序中使用sleep(10 * 60)
并从 controller 代码中删除延迟。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.