Laravel 單元測試認證使用者

liaosp發表於2021-01-20

在這裡插入圖片描述

之前介紹了一篇 關於 auth 的博文: 守衛者在這邊就能運用上了。

在單元測試中,測試一個服務方法,有呼叫到 Auth::user()->id ,下面來介紹一下測試中認證賦值。

建立一個AuthTest 的方法:

php artisan make:test ShoppingTest –unit

需要引用 trait use InteractsWithAuthentication;

新增一個setUp

    public function setUp(): void
    {
        parent::setUp(); 

    }

此方法,類似這個測試類中的初始化。

    public function setUp(): void
    {
        parent::setUp(); 

        $this->actingAs( User::first(),'admin');
    }

用 be 或者 actingAs 都可以,感興趣的同學可以看下原始碼。

其實上面的 admin 就是守衛者。

在測試方法中,就可以直接呼叫 Auth::guard('admin')->user();

    public function testIsLogin()
    {

//        $res =Auth::guard('admin')->user();
        $this->assertAuthenticated();
    }

斷言是否登入。

這邊有一個坑:

Call to a member function connection() on null

在這裡插入圖片描述

use Tests\TestCase;
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章