我已经采用了Rails应用程序并试图进行一些模型测试;我是第一次使用FactoryGirl所以这可能是一个初学者的问题。
有一个名为object_connection的模型将两条信息链接在一起。它在开发中工作正常,但它与food_item和drink_item有关,但没有关联。问题是,每次运行规范时,这两个create都会运行。我想得到一个简单的工厂来创建它,但以下不起作用:
FactoryGirl.define do
factory :test_object_connection, class: ObjectConnection do
m=FactoryGirl.create :menu_item
fi=FactoryGirl.create(:test_food_item, menu_header_id: 1, menu_id: 1)
food_id fi.id
food_location_id fi.location_id
drink_id m.id
end
end
我尝试过做一次(:create),但它似乎没有起作用。我理所当然地知道应该有一个关联,但我宁愿让这个测试正常工作,然后提出这些改变。在创建工厂时创建局部变量的正确方法是什么?
THX
答案 0 :(得分:0)
我不确定这是正确的方法,但对我有用(通过TestFoodItem.last.location_id)。
FactoryGirl.define做 factory:test_object_connection,class:ObjectConnection do
food_id { FactoryGirl.create(:test_food_item, menu_header_id: 1, menu_id: 1).id }
food_location_id { TestFoodItem.last.location_id }
drink_id { FactoryGirl.create(:menu_item).id }
端 端