伪造仅特定事件在Laravel测试中不起作用

时间:2018-07-23 17:16:55

标签: laravel eloquent laravel-testing

我在我的项目中使用spatie / laravel-sluggable软件包。我需要断言一个事件已调度。问题是当我在测试中伪造事件(Event::fake([AdvertPublished::class])时,从理论上讲,仅我的Advertpublished事件应该被伪造,但是pacakge事件似乎也被伪造了,而创建the generateSlugOnCreate的方法永远不会执行,这会导致sql错误,因为我的slug字段不能为null。

Event::fake([AdvertPublished::class]);

$response = $this->json('POST', '/company/adverts', ['foo' => 'bar'])
    ->assertStatus(201);

$advert = Advert::first();
Event::assertDispatched(AdvertPublished::class, function ($e) use ($advert) {
    return $e->advert->id === $advert->id;
});

有人知道我是否缺少某些东西,或者可能是什么问题?

0 个答案:

没有答案