Laravel 5.3 - 避免在PHPUnit的测试发送松弛通知
问题描述:
所以我有一个测试设置一个访问注册网页并提交表单。然后测试通过令牌验证帐户。Laravel 5.3 - 避免在PHPUnit的测试发送松弛通知
一旦该帐户已被验证,通知通过SlackMessage
发送。
什么我不知道是我怎么可以拦截这一点,并从实际发送停止松弛消息 - 运行测试,只有当,但得到某种确认,该通知并在事实上被调用。
答
我发现了一个未公开的方法expectsNotifications()在Laravel 5.3 MockApplicationServices特质。它的作用几乎与documented event mocking相同。
用法为:
$this->expectsNotification($notifiable, $notification);
// eg.
$this->expectsNotification($user, UpperLimitExceeded::class);
还有$这个 - > withoutNotifications()跳过遇到的任何通知。
+0
这实际上是我能够找到的'expectsNotification'的唯一参考。非常感谢! – Meriw
答
最后我只是在做Notification::shouldReceive('send')->once();
的人谁的疑惑。我的猜测是嘲笑通知门面:)正确的方式
答
如果需要跳过发送的所有通知,把下面一行在您的测试方法的开头:
$this->withoutNotifications();
你不能嘲笑通知发送类? –
我想我可以。从来不知道嘲笑甚至存在。那么我有一堆新的事情要做:)我很新的测试。完成通知:: shouldReceive('send') - > once();这似乎工作得很好。谢谢:) – Pistachio