Codeception Lumen API - ' Auth guard driver [api]未定义'在单个测试中发出多个请求时

时间:2017-01-17 23:29:10

标签: php codeception lumen laravel-passport lumen-5.3

我有一个使用Lumen 5.3构建的API。对于身份验证我使用Laravel Passport(通过dusterio/lumen-passport包移植到Lumen)。

一切都适用于Postman,所有测试都可以通过一个请求完成。 但是,一旦我进行了多次请求的测试,我就会收到错误:' Auth guard driver [api]未定义'。警卫是在我的auth配置中定义的,正如我所说的那样,在这个测试用例之外是完美的。

示例测试:

    public function it_requires_users_password_when_updating_email(ApiTester $I)
    {
        $I->wantTo('Require password when updating email');
        $user = factory(\App\User::class)->create();
        $I->sendPOST('oauth/token', [
            'grant_type' => 'password',
            'client_id' => 1,
            'client_secret' => env('OAUTH_SECRET'),
            'username' => $user->email,
            'password' => 'password',
            'scope' => ''
        ]);
        $token = $I->grabDataFromResponseByJsonPath('$.access_token')[0];
        $I->amBearerAuthenticated($token);
        $I->sendPUT('users/' . $user->id, ['email' => 'bender.rodriguez@planetexpress.com']);
        $I->seeResponseCodeIs(422);
        $I->seeRecord('users', array_only($user->toArray(), ['id', 'email']));
        $I->dontSeeRecord('users', ['id' => $user->id, 'email' => 'bender.rodriguez@planetexpress.com']);
        $I->sendPUT('users/' . $user->id, ['email' => 'bender.rodriguez@planetexpress.com', 'password' => 'password']);
        $I->seeResponseCodeIs(200);
        $I->seeRecord('users', ['id' => $user->id, 'email' => 'bender.rodriguez@planetexpress.com']);
    }

如果我删除最后3行(第二个sendPUT请求中的所有内容),测试通过正常,但是一旦我包含它,我就会收到错误。

有什么想法吗?

0 个答案:

没有答案