【发布时间】:2018-03-09 14:44:42
【问题描述】:
我正在使用 Laravel 5.6,应该为某些功能创建功能测试。在某些条件下,如果从第一个作业开始执行第二个作业,我如何测试分派两个作业。
看起来像这样:
class FirstJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
dispatch(new SecondJob());
}
}
顺序断言看不到第二个Job。
Queue::assertPushed(FirstJob::class); // 断言
Queue::assertPushed(SecondJob::class); // 未断言
【问题讨论】:
-
对于在任何时候(2021 年以上)阅读本文的每个人来说,这都不是一个好的测试,因为您正在实例化一个作业,分派它然后“处理”它,什么时候应该分派它并且完成后,检查您的测试环境是否正在同步处理任何工作,所以一切都是开箱即用的。另外,如果你在伪造
Queue,那么这是没有意义的......当你尝试功能测试时应该发送它......
标签: laravel testing queue jobs