公式ソリューション
これは、Laravel の公式ドキュメントのテストの章で言及されています:
もちろん、セッションの一般的な用途の 1 つは、認証されたユーザーの状態を維持することです。 ActingAs ヘルパー メソッドは、指定されたユーザーを現在のユーザーとして認証するための簡単な方法を提供します。たとえば、モデル ファクトリを使用してユーザーを生成および認証できます:
<?php use App\User; class ExampleTest extends TestCase { public function testApplication() { $user = factory(User::class)->create(); $response = $this->actingAs($user) ->withSession(['foo' => 'bar']) ->get('/'); } }
実際には、Laravel テストを使用してIlluminate\Foundation\Testing\Concerns\ImpersonatesUsers
トレイトの actingAs
メソッドと be
メソッド。 設定後、後続のテストコードでは、
などのメソッドで現在認証されているユーザーを取得できます。 偽の認証済みユーザー
公式の例では、factory を使用して実際のユーザーを作成しますが、多くの場合、認証済みユーザーとして偽のユーザーを使用したいだけです。工場を通じた実際のユーザー。
tests ディレクトリに新しい
User calss を作成します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
protected $fillable = [
'id', 'name', 'email', 'password',
];
}</pre><div class="contentsignin">ログイン後にコピー</div></div>
に id
属性を追加する必要があります。それ以外の場合は、例外がスローされます: Illuminate\Database\Eloquent\MassAssignmentException: id
次に、ユーザー認証 user を偽造します:
$user = new User([ 'id' => 1, 'name' => 'ibrand' ]); $this->be($user,'api');
私は、いくつかの小さなコードを書き続けます。単体テストの詳細については、今後の記事をご覧ください。記事、フォロー歓迎:)
関連する推奨事項:最新の 5 つの Laravel ビデオ チュートリアル