Как протестировать модели Rails Engine с мини-юбкой?
Я столкнулся с проблемой при попытке проверить движок Rails 4 с помощью мини-юбки.
У меня есть модельный тест, настроенный в test/models/job_manager/job_test.rb
:
require 'test_helper'
module JobManager
describe Job do
before do
@job = Factory.build(:job)
end
it "is a valid object" do
@job.valid?.must_equal true
end
end
end
Моя фабрика мини-юбок в настоящее время определяется как:
module JobManager
Factory.define :job do |j|
j.title 'Job Title %d'
j.description 'Lorem ipusum dolor sit amet consecateur ad piscin'
end
end
И ошибка, которую я получаю:
uninitialized constant Job
Exception `NameError' at:
… Которая прослеживается до строки 6 в тесте модели (@job = Factory.build(:job)
). Заменить его на @job = Job.new
работает нормально, но тогда я больше не использую фабрики мини-юбок. Я получаю эту ошибку, если фабрика определена в JobManager
модуль или нет.
1 ответ
Согласно Стивену Селису, Factory.define
не использует текущую область для разрешения констант. Это решило проблему:
Factory.define :job, class: JobManager::Job do |j|
j.title 'Job Title %d'
j.description 'Lorem ipusum dolor sit amet consecateur ad piscin'
end