gpt4 book ai didi

php - Laravel 按需测试通知

转载 作者:可可西里 更新时间:2023-11-01 01:13:34 25 4
gpt4 key购买 nike

我有一个 slack 通知类,每当用户执行激活过程时,它都会在我们公司的 slack 帐户内通过特定 channel 发送一条消息。

该系统可以工作,但它是手动测试的,这并不酷。

通知由附加到 UserHasBeenActivated 事件的监听器发送,监听器如下:

public function handle(UserHasBeenActivated $event)
{
Notification::route("slack", config("services.slack.user.url"))
->notify(new UserActivated($event->user));
}

非常简单。这里的问题是通知是按需通知,因此很难测试...因为没有任何类型的文档说明如何测试按需通知!

此刻我被困在这里:

public function it_sends_a_notification_when_an_user_is_activated()
{
Notification::fake();

$user = factory(User::class)->states("deleted")->create();
$user->activate();

Notification::assertSentTo(
$user,
UserActivated::class
);
}

当然这个测试失败了,activate() 方法触发了事件 UserHasBeenActivated 并顺序地触发了所有的监听器,其中之一发送了相应的通知。

您知道如何测试按需通知吗?我是否缺少任何隐藏的 API?

最佳答案

对于新手

Laravel 在 v5.5.14 中引入了使用提供的 Notification::fake() 系统测试匿名通知的能力。

有关此 功能的更多信息,请点击此处:https://github.com/laravel/framework/pull/21379

关于php - Laravel 按需测试通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46277323/

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