我已经设置了一个测试,访问注册页面并提交表单。然后测试通过令牌验证账户。
一旦验证了帐户,就会通过 SlackMessage
发送通知。
我想知道如何拦截这个过程,并阻止 Slack 消息实际发送 - 只有在运行测试时,但是需要得到某种确认,通知确实被调用。
我已经设置了一个测试,访问注册页面并提交表单。然后测试通过令牌验证账户。
一旦验证了帐户,就会通过 SlackMessage
发送通知。
我想知道如何拦截这个过程,并阻止 Slack 消息实际发送 - 只有在运行测试时,但是需要得到某种确认,通知确实被调用。
我在 Laravel 5.3 MockApplicationServices trait 中发现了一个未记录的方法 expectsNotifications()。它的工作原理与文档中记录的事件模拟基本相同。
用法如下:
$this->expectsNotification($notifiable, $notification);
// eg.
$this->expectsNotification($user, UpperLimitExceeded::class);
还有$this->withoutNotifications(),可以跳过遇到的任何通知。
Notification::shouldReceive('send')->once();
,如果有人想知道的话。我猜这就是模拟通知门面的正确方式 :)