Laravel 5.3 - 避免在phpunit测试中发送松弛通知

时间:2016-08-25 06:06:02

标签: php laravel laravel-5 laravel-5.3

所以我有一个测试设置,访问注册页面并提交表单。然后,测试通过令牌验证帐户。

帐户验证后,会通过SlackMessage发送通知。

我想知道的是我如何拦截这一点,并阻止实际发送的松弛消息 - 仅在运行测试时,但获得某种确认通知确实被调用的确认。

3 个答案:

答案 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门面的正确方法:)

相关问题