在 laravel 5.2 单元测试中模拟作业



我对单元测试很陌生。我被要求在我的应用程序中编写单元测试。在我的应用程序中,我们有控制器和服务。我试图像这样模拟从控制器调用的工作。

$this->expectsJobs(AppJobsUploadResponseEmail::class);

这将引发以下错误

生产。错误:Mockery\Exception\NoMatchingExpectationException:找不到 Mockery_0_Illuminate_Bus_Dispatcher::d ispatch(object(App\Jobs\UploadResponseEmail)) 的匹配处理程序。该方法是意外的,或者其参数与此方法的预期参数列表匹配

作业有一个需要参数的构造函数。我认为这会导致错误。如何在此处传递构造函数参数。知道吗?

如果您使用的是 lumen,则需要在 composer.json 文件中添加嘲弄。拉拉维尔默认有它,所以你的问题是关于流明而不是拉拉维尔

"mockery/mockery": "0.9.*",

即使从 Laravel 5.1 开始,它也在那里:https://github.com/laravel/laravel/blob/5.1/composer.json

在流明5.2中缺少它的地方:https://github.com/laravel/lumen/blob/v5.2.1/composer.json

最新更新