Menu

47.测试模拟器之通知模拟

本节说明

  • 对应视频教程第 47 小节:Notification Fakes In A Nutshell

本节内容

本节我们为消息通知添加一个单元测试。我们在本节使用 测试模拟器 的通知模拟来编写测试代码:
forum\tests\Unit\ThreadTest.php

<?php

namespace Tests\Unit;

use App\Notifications\ThreadWasUpdated;
use Illuminate\Support\Facades\Notification;
.
.
class ThreadTest extends TestCase
{
    .
    .
    /** @test */
    public function a_thread_can_add_a_reply()
    {
        $this->thread->addReply([
           'body' => 'Foobar',
           'user_id' => 1
        ]);

        $this->assertCount(1,$this->thread->replies);
    }

    /** @test */
    public function a_thread_notifies_all_registered_subscribers_when_a_reply_is_added()
    {
        Notification::fake();

        $this->signIn()
            ->thread
            ->subscribe()
            ->addReply([
               'body' => 'Foobar',
               'user_id' => 999 // 伪造一个与当前登录用户不同的 id
            ]);

        Notification::assertSentTo(auth()->user(),ThreadWasUpdated::class);
    }
    .
    .
}

运行测试:
file
OK,本节结束,下一节我们继续前进。

本文章首发在 Laravel China 社区
上一篇 下一篇
讨论数量: 0
发起讨论


暂无话题~