3

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

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;
});

有人知道我是否遗漏了什么或可能是什么问题?

4

0 回答 0