У меня есть следующие настройки фабрикиFactoryGirl и ассоциации проверки
FactoryGirl.define do
factory :image do
title 'Test Title'
description 'Test Description'
photo File.new("#{Rails.root}/spec/fixtures/louvre_under_2mb.jpg")
after(:build) do
FactoryGirl.build_list(:category, 1)
end
end
end
В рамках моей модели у меня есть эти валидаций
class Image < ActiveRecord::Base
has_many :categories
validates :title, presence: { message: "Don't forget to add a title" }
validates :description, presence: { message: "Don't forget to add a description" }
validates :categories, presence: { message: 'Choose At Least 1 Category' }
end
Когда я запускаю этот тест он не
RSpec.describe Image, type: :model do
it 'should have a valid Factory' do
expect(FactoryGirl.build(:image)).to be_valid
end
end
Failure/Error: expect(FactoryGirl.build(:image)).to be_valid
expected #<Image id: nil, title: "Test Title", description: "Test Description", photo_file_name: "louvre_under_2mb.jpg", photo_content_type: "image/jpeg", photo_file_size: 65618, photo_updated_at: "2015-12-15 08:01:07", created_at: nil, updated_at: nil> to be valid, but got errors: Categories Choose At Least 1 Category
Am I приближаясь к этому неправильно, поскольку я думал, что валидации не ударят, пока весь объект не будет cr eated? или я думаю об этом неправильно?
Благодаря
'FactoryGirl.build_list (: категория, 1)' строит массив с одной категорией, но ни один массив, ни категория связана с изображением , – Stefan