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

Yog*_*lav 4 phpunit laravel

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

Notification::route('slack', env('SLACK_URL'))
    ->notify(new StaffNotification());
Run Code Online (Sandbox Code Playgroud)

并在 StaffNotification 中

public function toSlack() {
    return (new SlackMessage)->content('New Staff Message.');
}
Run Code Online (Sandbox Code Playgroud)

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

小智 5

当你的模型中没有可通知的内容时, 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);
    }
}
Run Code Online (Sandbox Code Playgroud)