在测试作业时,似乎the solution只是实例化该作业并调用它的handle方法。
根据Laravel Queue Documentation,您可以输入提示对Job的handle()
方法的依赖性。我将假设您不在构造函数上执行此操作,因为这是传递作业数据的方式,并且队列工作程序未设置为在处理作业时注入依赖项。
因此,在测试时,将依赖项传递给handle方法的最佳方法是什么。现在,我正在执行以下操作:
$jobFoo = new jobFoo($bar);
$jobFoo->handle(
$this->app->make(DependencyExample::class)
);
这是传递依赖关系的更好方法,或者整个以这种方式测试作业的方法都是有缺陷的。
答案 0 :(得分:2)
您可以使用app来调用方法并自动解决依赖关系:
$this->app->call([$jobFoo, 'handle]);