Итак, у меня есть тестовый набор, который посещает страницу регистрации и отправляет форму. Затем тест проверяет учетную запись по токену.
После проверки аккаунта уведомление отправляется через SlackMessage
,
Что меня интересует, так это как я могу перехватить это и не допустить фактической отправки слабого сообщения — только при выполнении теста, но получить какое-то подтверждение того, что уведомление действительно было вызвано.
В признаке Laravel 5.3 MockApplicationServices я обнаружил недокументированный метод ExpectedNotifications (). Это работает почти так же, как документированное событие.
Использование это:
$this->expectsNotification($notifiable, $notification);
// eg.
$this->expectsNotification($user, UpperLimitExceeded::class);
Существует также $ this-> withoutNotifications (), чтобы пропустить любые встреченные уведомления.
Если вам нужно пропустить отправку всех уведомлений, поместите следующую строку в начале вашего метода тестирования:
$this->withoutNotifications();
Я в итоге просто делал Notification::shouldReceive('send')->once();
для тех, кто интересуется. Какой, я думаю, правильный способ издеваться над фасадом уведомлений 🙂