php - Laravel 模型工厂 - 大型 JSON 存根
问题描述
我从外部 API 中提取订单信息并将整个 JSON 响应保存到documents
表中。
我显然不想在测试时调用这个 API,所以我设置了一个工厂,但我正在努力解决如何提取这些 JSON 存根。例如:
// 工厂
$factory->define(App\OrderDocument::class, function (Faker $faker) {
return [
'document_id' => $faker->uuid,
'status' => $faker->randomElement(['open', 'partial', 'processed', 'updating']),
'document' => $faker->text
];
});
// 当前使用它就像...
foreach ($this->fullDocuments() as $id => $document){
$a = factory(\App\OrderDocument::class)->create([
'document_id' => $id,
'status' => 'full'
]);
$a->setRawAttributes(['document' => $document]);
$a->save();
}
其中$this->fullDocuments()
包含来自 API 的 document_id 和原始 JSON 响应的数组。
我知道一个更好的方法是工厂化整个 JSON 文档。JSON 包含大约 500 行,所以这将非常耗时,但我不拥有这些数据,所以我认为我不应该试图伪造它。
在我的测试中,我更愿意执行以下操作,但不确定如何操作。
factory(OrderDocument::class, 10)->create([
'document_id' => $this->getDocumentId($i++),
'document' => $this->getDocumentStub($i++),
]);
解决方案
推荐阅读
- php - PHP mail() 函数的(message) 参数是否需要转义?
- ruby-on-rails - Rails/Sorcery:未定义的方法 `remember_me_token=' for #
- javascript - Highcharts - 如何从 java 地图中设置 x 轴和 y 轴的数据
- python-3.x - 无法从 Fargate 容器中访问 S3 存储桶(错误请求并且无法找到凭据)
- haskell - How should I structure constrained parameters in Haskell?
- regex - Vim 如何使用正则表达式删除一些单词
- python - python matplotlib中指定间隔的绘图函数
- javascript - 处理具有许多变量的操作的更好方法?
- php - 选择性地将 PHP 输出记录到日志文件,而不是将其打印到浏览器
- visual-studio-2017 - VS2017 安装失败;无法通过安装程序或 Microsoft 开发社区报告