所以我有一個測試設置一個訪問註冊網頁並提交表單。然後測試通過令牌驗證帳戶。Laravel 5.3 - 避免在PHPUnit的測試發送鬆弛通知
一旦該帳戶已被驗證,通知通過SlackMessage
發送。
什麼我不知道是我怎麼可以攔截這一點,並從實際發送停止鬆弛消息 - 運行測試,只有當,但得到某種確認,該通知並在事實上被調用。
所以我有一個測試設置一個訪問註冊網頁並提交表單。然後測試通過令牌驗證帳戶。Laravel 5.3 - 避免在PHPUnit的測試發送鬆弛通知
一旦該帳戶已被驗證,通知通過SlackMessage
發送。
什麼我不知道是我怎麼可以攔截這一點,並從實際發送停止鬆弛消息 - 運行測試,只有當,但得到某種確認,該通知並在事實上被調用。
我發現了一個未公開的方法expectsNotifications()在Laravel 5.3 MockApplicationServices特質。它的作用幾乎與documented event mocking相同。
用法爲:
$this->expectsNotification($notifiable, $notification);
// eg.
$this->expectsNotification($user, UpperLimitExceeded::class);
還有$這個 - > withoutNotifications()跳過遇到的任何通知。
這實際上是我能夠找到的'expectsNotification'的唯一參考。非常感謝! – Meriw
最後我只是在做Notification::shouldReceive('send')->once();
的人誰的疑惑。我的猜測是嘲笑通知門面:)正確的方式
如果需要跳過發送的所有通知,把下面一行在您的測試方法的開頭:
$this->withoutNotifications();
你不能嘲笑通知發送類? –
我想我可以。從來不知道嘲笑甚至存在。那麼我有一堆新的事情要做:)我很新的測試。完成通知:: shouldReceive('send') - > once();這似乎工作得很好。謝謝:) – Pistachio