Laravel 仅在单元测试期间持续存在
Posted
技术标签:
【中文标题】Laravel 仅在单元测试期间持续存在【英文标题】:Laravel persisting only during duration of unit test 【发布时间】:2020-08-24 14:21:29 【问题描述】:我正在对 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是标准的
【问题讨论】:
你做的不是unitTest,而是功能/api测试。 【参考方案1】:有一个名为RefreshDatabase
的特征会在每次测试完成后刷新数据库。只需将其添加到您的测试用例类的类中即可。
这能解决您的问题吗?
【讨论】:
以上是关于Laravel 仅在单元测试期间持续存在的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Homestead 在单元测试期间未使用 var_dump() 或 dump() 打印到控制台