1

我采用了一个 Rails 应用程序,并正在尝试进行一些模型测试;我是第一次使用 FactoryGirl,所以这可能是一个初学者的问题。

有一个名为 object_connection 的模型将两条信息链接在一起。它在开发中运行良好,但它与 food_item 和 Drink_item 相关,但没有关联。问题是每次我运行一个规范时,这两个创建的都会运行。我想得到一个简单的工厂来创建它,但以下不起作用:

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

我尝试做一个 before(:create) 但它似乎没有工作。我知道理想情况下应该有一个关联,但我宁愿让这个测试正常工作,然后提出这些更改。在创建工厂时创建局部变量的正确方法是什么?

谢谢

4

1 回答 1

0

我不确定这是正确的方法,但对我有用(通过 TestFoodItem.last.location_id)。

FactoryGirl.define 做工厂:test_object_connection,类:ObjectConnection 做

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 }

结束结束

于 2013-11-14T13:22:16.277 回答