@Holmess88

Почему expectsNotification или аналогичные инструменты не отлавливают уведомления в тестах?

Здравствуйте! Такой вопрос.
Например.

У меня есть уведомление в коде, которое ставит в очередь на отправку пользователю письма с восстановлением пароля. Я его могу заглушить. Но! Инструменты тестирования ларавель дают мне возможность их отловить, т.е. не просто забить на них, а убедиться, что они фактически были обработаны. Но, почему-то ни expectsNotification, ни Notification::assertSentTo() не делают то, что я от них ожидаю. Вылетает такая ошибка в тесте: The following expected notification were not dispatched. В коде уведомление оправляется как Notifications::send(адресат)

Я дополнительно писал артисан-команды чтобы запустить обработку очереди, но это также не помогло пройти утверждение, что уведомление было обработано.

Может кто сталкивался с таким вопросом и знает ответ что не так и почему не проходит утверждение?

Laravel 5.8
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Holmess88 Автор вопроса
Я просмотрел логи, может быть проблема в том, что у меня фактически уведомление уходит в статус проваленное?

То есть, так как у меня нет локально настроенного smtp, мне некому отправлять сообщения.
Лог примерно такой: Processing x3 -> Failed. Очередь три раза пытается обработать, потом снимает с обработки.

Process could not be started /usr/sbin/sendmail

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

Я переписал под assertSentTo() и это утверждение тоже не проходит потому что уведомление лежит в проваленных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы