我有一个松弛的通知类,每当用户执行激活过程时,它就会在特定的通道中在公司的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吗?
答案 0 :(得分:2)
对于新人
Laravel在tasks:
- name: Check if mongod is active
command: systemctl status sshd
register: deb_check
ignore_errors: yes
no_log: True
failed_when: false
- name: Raise a flag whenever the service should be stopped
notify: stop mongod
when: '"dead" in deb_check.stdout'
handlers:
- name: stop mongod
service:
name: mongod
state: stopped
中引入了使用提供的v5.5.14
系统测试匿名通知的功能。
有关此新功能的更多信息,请访问:https://github.com/laravel/framework/pull/21379