繁体   English   中英

Laravel 测试 email 发送延迟

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM