首页 > 解决方案 > Laravel 仅在单元测试期间持续存在

问题描述

我正在对 API 端点进行单元测试,我有这样的事情:

public function testPostService()
{
    $response = $this->json('POST', '/api/v1/service',[
            "id"=> "someId",
            "number" => 123
    ]);
    $response
        ->assertStatus(201)
        ->assertJson([
            'created' => true,
        ]);
}

id 是一个唯一值,每次运行测试时都会导致我遇到问题。我必须清空数据库或更改 id 值。

有什么方法可以只在测试期间保留持久值?

我的 phpunit.xml 是标准的

标签: laravelunit-testinglaravel-5phpunit

解决方案


有一个称为 traitRefreshDatabase会在每次测试完成后刷新数据库。只需将其添加到您的测试用例类的类中,您就可以开始了。

这能解决你的问题吗?


推荐阅读