使用Laravel Passport / Phpunit验证我的API

时间:2016-10-19 16:52:03

标签: php laravel phpunit

我刚刚根据docs验证了我的API。

现在,我用phpunit进行的功能测试已经破了。我收到“Unauthenticated”错误。

我尝试使用中间件,推荐here,但它没有用。

我想我需要在请求中包含csrf fiels,但我真的不知道如何进行测试

这是我的测试:

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

知道我该怎么办?

1 个答案:

答案 0 :(得分:2)

您可以使用Illuminate\Foundation\Testing\WithoutMiddleware特性,它可以绕过认证中间件(但也包括所有其他中间件)。

更具弹性的方法是使用the built-in testing handling进行身份验证。传递actingAs函数的有效用户将执行您的测试,就好像该用户已登录一样。

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

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