gpt4 book ai didi

Laravel 测试 : model factory doesn't trigger Registered event

转载 作者:行者123 更新时间:2023-12-03 23:30:46 26 4
gpt4 key购买 nike

我使用 Laravel 5.7 已经有一段时间了,但是,我对 TDD 完全陌生。

如果创建了用户模型,则会触发 register 事件。但是,当我使用工厂创建用户模型时,为什么它没有被触发?

我的工厂:

$factory->define(App\User::class, function (Faker $faker) {
return [
'first_name' => $faker->name,
'sur_name' => $faker->name,
'phone' => $faker->phoneNumber,
'birthday' => Carbon::now()->subYears(25)->toDateTimeString(),
'gender' => 'm',
'email' => $faker->unique()->safeEmail,
'password' => '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', // secret
'remember_token' => str_random(10),
];
});

我的测试失败了:

public function test()
{

$this->withoutExceptionHandling();

Event::fake();
$user = factory(User::class)->create();

Event::assertDispatched(Registered::class);

}

最佳答案

Registered 事件在使用 Laravel 提供的 auth 脚手架时由 controller 调度(具体来说,Illuminate\Foundation\中的 register() 方法) Auth\RegistersUsers 特征。由于您没有通过 Controller 发出请求,因此它不会分派(dispatch)事件。

关于Laravel 测试 : model factory doesn't trigger Registered event,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54817039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com