如何在没有通知的情况下测试 Laravel 通知?

How to test Laravel notification without notifiable?

我们正在向我们的团队频道发送松弛消息,因此不使用可通知的实例。 我就是这样做的-

Notification::route('slack', env('SLACK_URL'))
    ->notify(new StaffNotification());

并在 StaffNotification 中

public function toSlack() {
    return (new SlackMessage)->content('New Staff Message.');
}

我应该如何测试 StaffNotification,因为所有可用的断言都接受第一个参数作为可通知的?

Laravel 当您的模型中没有通知对象时,会在幕后创建一个 AnonymousNotifiable,您可以使用它:

use Illuminate\Notifications\AnonymousNotifiable;
use Illuminate\Support\Facades\Notification;

class NotificationsTest extends TestCase
{
    public function testSend()
    {
        Notification::fake();
        //perform your code
        Notification::assertSentTo(new AnonymousNotifiable(), StaffNotification::class);
    }
}