Open4

Laravel6 PHPUnit 参考になった記事まとめ

まさやまさや

認証 のテスト

https://engineer-lady.com/program_info/create-login-phpunit-laravel7/

Laravel標準のWebからログインする時のテストが書かれている
めっちゃわかりやすい!

まさやまさや

初学者でもわかりやすいようにと気を使ってくれてて dummyLogin 関数が LoginTest.php に書かれている

ただ、仕事で使うのであればTestCase.phpに書いておけばどのテストケースからも $this->dummyLogin();で済むのでおすすめ

まさやまさや

また、プロジェクトの仕様によってこれは書き方が大きく分かれると思うけど、僕はgetを呼ばずにログインしたユーザー情報を返して書くテストケースで使いまわしてた

public function dummyLogin(): User
{
    $user = factory(User::class, 'default')->create();
    $this->actingAs($user); // withSessionはSessionを使う場合のみでいい
    return $user;
}

この記事を見る限りSPAじゃなくてLaravel MVCなので、APIのみLaravelを使う人はこっちの方がいいかも?

まさやまさや

token認証のテスト

tokenに関してはUserテーブルにapi_tokenフィールドを追加したと思うのでそれを使う

public function login(): User
{
    $user = factory(User::class, 'default')->create(['api_token' => Str::random(80)]);
    $this->withHeaders(
        ['Authorization' => 'Bearer ' . $user->api_token];
    );
    return $user;
}