测试时类型提示对Jobs的依赖

时间:2019-04-12 06:23:52

标签: laravel

在测试作业时,似乎the solution只是实例化该作业并调用它的handle方法。

根据Laravel Queue Documentation,您可以输入提示对Job的handle()方法的依赖性。我将假设您不在构造函数上执行此操作,因为这是传递作业数据的方式,并且队列工作程序未设置为在处理作业时注入依赖项。

因此,在测试时,将依赖项传递给handle方法的最佳方法是什么。现在,我正在执行以下操作:

$jobFoo = new jobFoo($bar);
$jobFoo->handle(
  $this->app->make(DependencyExample::class)
);

这是传递依赖关系的更好方法,或者整个以这种方式测试作业的方法都是有缺陷的。

1 个答案:

答案 0 :(得分:2)

您可以使用app来调用方法并自动解决依赖关系:

$this->app->call([$jobFoo, 'handle]);