Laravel测试生命周期挂钩

时间:2019-10-30 12:24:24

标签: php database laravel testing lifecycle-hook

我有一个特征来记录创建的生命周期挂钩上的活动。在我的测试课程中,如果我使用 RefreshDatabase运行任何给定的单个测试,则无法说明该表为空。如果我没有 RefreshDatabase运行测试,则测试通过,但由于明显原因,下次将失败。如果我使用 RefreshDatabase来运行整个测试类,则只有第一个失败,其余的则通过。如果我在没有整个测试类的情况下没有 RefreshDatabase,则第一个通过了,其余的由于明显的原因(重复的键错误)而失败。

这是通过这种方式进行的测试之一:

    /** @test */
    public function user_can_access_their_own_activity()
    {
        $this->jsonAs($this->user, 'POST', route('team.store'), [
            'display_name' => 'Test Team',
        ])->assertStatus(200);

        $this->assertDatabaseHas('activities', [
            'user_id' => $this->user->getKey(),
            'type' => 'created_team',
        ]);

        $response = $this->jsonAs($this->user, 'GET', route('activity.index'))
            ->assertStatus(200);

        $response->assertJsonFragment([
            'type' => 'created_team',
            'uuid' => $this->user->uuid,
        ]);
    }

如果我需要分享更多信息,请告诉我。谢谢!

0 个答案:

没有答案