Как написать контрольный пример для проверки почтового тела в Laravel - PullRequest
1 голос
/ 06 ноября 2019

У меня есть контроллер, в котором выполняются определенные задачи, а также функция отправки почты пользователям. Поэтому мы хотели написать контрольные примеры для этого, поскольку мы следовали подходу TDD, и мы решили не использовать mock для этой цели. Вместо этого мы использовали Mail::fake(). В моем контроллере я ставлю почту в очередь и использую почтовый класс для визуализации своего представления и передачи данных в этот почтовый класс. В результате я не могу проверить (в моих тестовых примерах) почтовое тело или тему этого класса для отправки. Любая идея о том, как написать контрольные примеры для проверки почтового тела или любые другие лучшие практики для этого?

1 Ответ

0 голосов
/ 06 ноября 2019

Laravel имеет функции для утверждения , что отправляется правильное письмо . Вы можете получить тему, обратившись к свойству субъекта, и если вы отобразите электронное письмо в виде и отобразите представление, вы получите электронное письмо в виде строки, а затем вызовите в нем строку, содержащую вызов.

Mail::assertSent(OrderShipped::class, function ($mail) {
    return $mail->subject === 'your subject' && 
        Str::contains($mail->render()->render(), 'Welcome to my website');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...