所以我有一个测试设置,访问注册页面并提交表单。然后,测试通过令牌验证帐户。
帐户验证后,会通过SlackMessage
发送通知。
我想知道的是我如何拦截这一点,并阻止实际发送的松弛消息 - 仅在运行测试时,但获得某种确认通知确实被调用的确认。
答案 0 :(得分:9)
我在Laravel 5.3 MockApplicationServices特性中找到了一个未记录的方法expectedNotifications()。它与xinput.h
header几乎相同。
用法是:
$this->expectsNotification($notifiable, $notification);
// eg.
$this->expectsNotification($user, UpperLimitExceeded::class);
还有$ this-> withoutNotifications()可以跳过任何遇到的通知。
答案 1 :(得分:2)
如果您需要跳过发送所有通知,请在测试方法的开头添加以下行:
$this->withoutNotifications();
答案 2 :(得分:1)
我最后只为那些想知道的人做Notification::shouldReceive('send')->once();
。我猜这是模仿Notification门面的正确方法:)