3
我正在使用FactoryGirl和RSpec來測試我的代碼。 Mongoid在我的ORM中。我遇到的問題是,爲了創建一個嵌入式文檔,您還必須創建父文檔。這裏有一個例子:如何使用FactoryGirl創建嵌入式文檔?
# app/models/recipe.rb
class Recipe
include Mongoid::Document
field :title
embeds_many :ingredients
end
# app/models/ingredient.rb
class Ingredient
include Mongoid::Document
field :name
embedded_in :recipe
end
然後我讓工廠爲這兩種:
# spec/factories/recipes.rb
FactoryGirl.define do
factory :recipe do |f|
f.title "Grape Salad"
f.association :ingredient
end
end
# spec/factories/ingredients.rb
FactoryGirl.define do
factory :ingredient do |f|
f.name "Grapes"
end
end
我現在的問題是,我永遠不能叫FactoryGirl.create(:成分)。原因是嵌入了Ingredient
,而我的Ingredient
工廠從不聲明與配方的關聯。如果我確實聲明瞭配方的關聯,那麼我會得到一個無限循環,因爲配方與配料關聯,配料與配方關聯。這很煩人,因爲我無法正確地測試我的Ingredient類。我怎麼解決這個問題?