[laravel] 既存のユーザー情報を「認証済み」にしてテストケースを進めたい


Webアプリケーションを作ってると、目的の画面へ行ってアサートを走らせる前に、必ずユーザー認証を済ませて置かねばならないケースが多々あります。というかそんなパターンが大多数なんじゃないかと思わなくもない……

Laravelさんはそのへんもぬかりなく、actingAs()メソッドで簡単に実現してくれます。

以下リファレンスから引用。

でも、リファレンスの例文通りに動かすと、認証用にユーザーを作り、DBに書き込んでから動かしているみたいで、なんというかめんどくさいです(´・ω・`)

俺の場合はSeederで予めユーザーデータを定義してあるので、できればそっちを使ってテストしたいんですよね……。
そういう時は↓のように書くといけるみたいです。

Eloquentのfindメソッドで取ってくるだけ。actingAsメソッドの引数は、Authenticatableインターフェースが実装されていればなんでもいいので、こんな書き方でいけるみたいです。

ちょーかんたん。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です