Тестирование ассоциаций с rspec и Factory Girl

Моя модель; Домохозяйство has_many: соседи и сосед принадлежит_к: домашнее хозяйство

У каждого домохозяйства должен быть сосед:

   validates :neighbors, presence: {message: 'You must enter at least one neighbor']

Я пытаюсь создать фабрику

   factory :household, class:  "Household" do
     household_name "Brooke"
     neighbor
   end


   factory :neighbor, class: "Neighbor" do
     first_name "Tom"
     last_name "Brooke"
   end 

    it "has a valid factory"  do
      household = create(:household, neighbors: :neighbor)
      expect(household).to be_valid
    end

Это дает мне:

  undefined method `neighbor=' for #<Household:0x007fd45ec85138>

Как мне настроить Factory Girl, чтобы отразить Ассоциацию?


person tbrooke    schedule 16.07.2015    source источник
comment
Еще одно задание !!!   -  person Rohit Gupta    schedule 17.07.2015


Ответы (1)


Наконец я сделал это:

Забрал соседа из хозяйственной фабрики:

  factory :household, class:  "Household" do
      household_name "Brooke"
    end

И для своего теста я создал Ассоциацию внутри теста:

   it "has a valid factory"  do
      neighbor = create(:neighbor)
      household = create(:household, neighbors: [neighbor])
      expect(household).to be_valid
   end
person tbrooke    schedule 17.07.2015