【发布时间】:2018-02-26 20:59:15
【问题描述】:
我有一个 Slack 通知类,每次用户执行激活过程时,它都会在我们公司的 Slack 帐户中的特定频道中发送一条消息。
系统工作正常,但它是手动测试的,这并不酷。
通知由附加到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?
【问题讨论】:
-
问题可能是
UserActivated和UerHasBeenActivated的区别? -
不抱歉错字,已编辑
-
@ClaudioLudovicoPanetta 不相关的问题,但是您是如何设法以这种方式发送松弛消息的?我的问题在这里:stackoverflow.com/questions/48278174/…
标签: php laravel unit-testing testing phpunit