2016-10-19 15 views
1

docsに基づいてAPIを認証したところです。Laravel Passport/Phpunitで自分のAPIを認証する

今のところ、phpunitでの機能テストが壊れています。 「Unauthenticated」エラーが表示されます。

私はミドルウェアを使用しようとしましたが、お勧めのhereですが、動作しませんでした。

私は要求にCSRF fielsを含める必要があるだろうと思いますが、私は本当にここで

をテストするために私のテストであることを行うには方法がわからない:

$this->json('POST', '/api/v1/category/create',$data) 
     ->seeJson($data) 
     ->seeInDatabase('category', $data); 

任意のアイデアはどのように私がすべきそう?

答えて

2

使用できる特性はIlluminate\Foundation\Testing\WithoutMiddlewareです。これは、認証ミドルウェア(しかし、他のすべてのミドルウェアも)をバイパスします。

さらに弾力のあるアプローチでは、認証にthe built-in testing handlingを使用しています。 actingAs機能に有効なユーザーを渡すと、そのユーザーがログインしたかのように。私はAPIをテストしてい

$user = factory(App\User::class)->create(); 

$this->actingAs($user)->visit('/'); 
+0

をあなたのテストを実行しますので、私はの$ this - > actingAsを使用することはできません。あなたが言うように、WithoutMiddlewareは大丈夫ですが、私はミドルウェアが必要な場合はどうしますか?私のテストで私の質問が更新されました –

+3

@JuliatzindelToro私が含まれているリンクを読んでいるなら、それは*特にあなたがAPIでそれを使うことができると述べています。 "あなたは、指定されたユーザを認証するためにどのガードを使うべきかを指定することもできます:' $ this-> actingAs($ user、 'api') '' – ceejayoz

+0

OMG、you 'もう一度!私はそれを見ませんでした。それは働いている! Tx –

関連する問題