在laravel中使用Faker时,如何测试API调用的结果?

问题描述 投票:0回答:1

我想在Laravel中编写API调用的测试。我创建了一个模型工厂来为我的测试数据库提供种子,因此API调用可以返回一些内容在模型工厂内部,我使用Faker为模型属性生成随机数据。我在测试开始时使用这个工厂,所以数据是在运行时创建的。

如何测试API调用的结果?问题在于,在每次执行测试期间,由于随机生成的数据,API调用可以返回不同的结果。所以我不能只在.json文件中保存APi调用的结果,并将其与测试中API调用的实际结果进行比较。

我知道qazxsw poo方法(qazxsw poo),但我不想使用它。

所以这是我目前的尝试不起作用:

seeJsonStructure()
php laravel testing laravel-5 faker
1个回答
2
投票

您可以在Faker中设置种子值,如https://laravel.com/docs/5.3/application-testing#verifying-structural-match所述。

Seeding the Generator

您可能希望始终获得相同的生成数据 - 例如,在使用Faker进行单元测试时。生成器提供$cars = factory(Car::class)->times(2)->create(); $this->json('GET', '/api/cars'); $expected = File::get('cars.json'); $this->seeJson((array) json_decode($expected)); 方法,它为随机数生成器播种。使用相同的种子调用相同的脚本两次会产生相同的结果。

here

这将为您提供跨测试运行的一致结果。

© www.soinside.com 2019 - 2024. All rights reserved.