[英]How to test Laravel Job with Delay?
我有一份因动态值而被延迟的工作:
SomeJob::dispatch()->delay($time);
在PHPUnit中,我们可以测试作业是否已发送,但有没有办法检查该作业是否在特定$time之后发送?
快速搜索出现了许多关于这样做的文章。 调用Queue::fake()
然后断言作业被放置在队列中。 在此断言中,您可以确认它有延迟。
<?php
namespace Tests\Feature;
use App\Jobs\SomeJob;
use Illuminate\Support\Facades\Queue;
use Tests\TestCase;
class ExampleTest extends TestCase
{
public function testJobDelayed()
{
Queue::fake();
// [...] Run code that dispatches the job
// Assert that Job was pushed with a delay
Queue::assertPushed(SomeJob::class, fn ($job) => !is_null($job->delay));
}
}
资料来源: https://mauricius.dev/test-laravel-job-delayed-in-queue/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.