6

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

验证帐户后,将通过 SlackMessage.

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

4

3 回答 3

9

我在 Laravel 5.3 MockApplicationServices 特征中发现了一个未记录的方法 expectsNotifications()。它的工作原理与记录的 event mocking几乎相同。

用法是:

$this->expectsNotification($notifiable, $notification);

// eg.
$this->expectsNotification($user, UpperLimitExceeded::class);

还有 $this->withoutNotifications() 可以跳过任何遇到的通知。

于 2016-09-07T08:14:24.667 回答
2

如果您需要跳过发送所有通知,请将以下行放在测试方法的开头:

$this->withoutNotifications();

于 2016-10-02T07:59:01.763 回答
1

我最终只是Notification::shouldReceive('send')->once();为任何想知道的人做。我猜这是模拟通知门面的正确方法:)

于 2016-08-25T06:46:08.307 回答