Хотя документация Laravel действительно указывает, что в объекте Mail
существует функция hasTo()
:
// Assert a message was sent to the given users...
Mail::assertSent(OrderShipped::class, function ($mail) use ($user) {
return $mail->hasTo($user->email) &&
$mail->hasCc('...') &&
$mail->hasBcc('...');
});
Не ясно, что можно утверждать, чтомножественный адрес был отправлен на почту.Функция hasTo
принимает следующую структуру в качестве ожидаемых утверждений:
[
[
'email' => 'johnny@appleseed.com',
'name' => 'Johnny Appleseed'
],
[
'email' => 'jane@appleseed.com',
'name' => 'Jane Appleseed'
],
]
Поскольку ключ имени является необязательным, самый простой способ проверить, что определенные пользователи получили электронное письмо, будет выглядеть примерно так:
Mail::fake();
$admins = User::where('administrator', true)->get()->map(function ($admin) {
return ['email' => $admin->email];
})->toArray();
Mail::assertSent(MyMailable::class, function ($mail) use ($admins) {
return $mail->hasTo($admins);
});
Если вы использовали модель пользователя Laravel по умолчанию или ваша пользовательская модель имеет свойства name
и email
, вы можете передать своих пользователей как коллекцию
Mail::fake();
$admins = User::where('administrator', true)->get();
Mail::assertSent(MyMailable::class, function ($mail) use ($admins) {
return $mail->hasTo($admins);
});