Laravel 5.3 — Избегайте отправки слабых уведомлений в тесте phpunit

Итак, у меня есть тестовый набор, который посещает страницу регистрации и отправляет форму. Затем тест проверяет учетную запись по токену.

После проверки аккаунта уведомление отправляется через SlackMessage,

Что меня интересует, так это как я могу перехватить это и не допустить фактической отправки слабого сообщения — только при выполнении теста, но получить какое-то подтверждение того, что уведомление действительно было вызвано.

5

Решение

В признаке Laravel 5.3 MockApplicationServices я обнаружил недокументированный метод ExpectedNotifications (). Это работает почти так же, как документированное событие.

Использование это:

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

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

Существует также $ this-> withoutNotifications (), чтобы пропустить любые встреченные уведомления.

8

Другие решения

Если вам нужно пропустить отправку всех уведомлений, поместите следующую строку в начале вашего метода тестирования:

$this->withoutNotifications();

2

Я в итоге просто делал Notification::shouldReceive('send')->once(); для тех, кто интересуется. Какой, я думаю, правильный способ издеваться над фасадом уведомлений 🙂

1
По вопросам рекламы [email protected]