是否有可能写一个测试,以确保一封电子邮件的发送有延迟?我能够测试它是否已被推送到队列中,但我希望确保邮件程序中的逻辑发送正确的电子邮件。这就是我所拥有的,assertPushed可以工作,但是assertSent返回一个失败。
这就是我在控制器中运行作业的方式;
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);
发布于 2022-09-11 17:22:22
在作业处理程序中使用sleep(10 * 60)
,并从控制器代码中删除延迟。
https://stackoverflow.com/questions/73683659
复制相似问题