【发布时间】:2021-03-26 14:07:03
【问题描述】:
我有以下种子文件,可以创建需要测试的特定类型的动物:
animal_seeder.rb
# frozen_string_literal: true
animal1 = create(:animal, name:"id0_12", type:"fish, score: 2 ...)
animal2 = create(:animal, name:"id0_123",type:"dog", score: 121 ...)
animal3 = create(:animal, name:"id0_997",type:"cat", score: 5 ...)
我现在遇到的问题是我还有另外 2 个名为 store_seeder.rb 的播种机和依赖于使用在 animal_seeder 中创建的动物变量的食物播种机。
例如。
create(
:animal_store,
timestamp: DateTime.now,
version: 3,
targets: {
"food": {
food.id=>{
"animals": {
animal1.id =>{
score:1231,
present: true,
.....
}
我们正在寻求测试特定用例,因此我无法为动物变量随机创建变量。有没有一种方法可以创建动物并将它们用作其他种子的参考?
【问题讨论】:
-
这是 FactoryBot 吗?以及哪个测试框架?
-
@Schwern 是的,我正在使用工厂机器人
-
animal_store 的结构有点搞笑。它真的是一家食品店,而且食品是为某些动物准备的吗?
-
@Schwern 是的,这可能不是最好的例子,尽管我想知道在概念上我是否可以这样做,因为我们的种子的其他实例需要专门制作的变量来测试数据
标签: ruby-on-rails ruby seeding