Я работаю над проектом Laravel. Я пишу интеграционные / функциональные тесты для моего приложения. Сейчас я пишу тест, в котором мне нужно подтвердить данные, переданные в уведомление по электронной почте, и данные, переданные для его просмотра. Я нашел эту ссылку для этого, https://medium.com/@vivekdhumal / how-to-test-mail-notifications-in- laravel -345528917494 .
Это мой класс уведомлений
class NotifyAdminForHelpCenterCreated extends Notification
{
use Queueable;
private $helpCenter;
public function __construct(HelpCenter $helpCenter)
{
$this->helpCenter = $helpCenter;
}
public function via($notifiable)
{
return ['mail'];
}
public function toMail($notifiable)
{
return (new MailMessage())
->subject("Help Center registration")
->markdown('mail.admin.helpcenter.created-admin', [
'helpCenter' => $this->helpCenter,
'user' => $notifiable
]);
}
}
Как вы можете видеть из кода, я передаю данные в представление blade-mail mail.admin.helpcenter.created-admin.
Это мой метод тестирования.
/** @test */
public function myTest()
{
$body = $this->requestBody();
$this->actingAsSuperAdmin()
->post(route('admin.help-center.store'), $body)
->assertRedirect();
$admin = User::where('email', $body['admin_email'])->first();
$helpCenter = HelpCenter::first();
Notification::assertSentTo(
$admin,
NotifyAdminForHelpCenterCreated::class,
function ($notification, $channels) use ($admin, $helpCenter) {
$mailData = $notification->toMail($admin)->toArray();
//here I can do some assertions with the $mailData
return true;
}
);
}
Как вы видите мой комментарий в тесте, я могу сделать некоторые утверждения с помощью переменной $ mailData. Но это не включает данные, передаваемые в представление. Как я могу утверждать или получать данные или переменные, передаваемые в представление / шаблон блейда?