0

我在尝试使用迷你裙测试 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:

… 追溯到模型测试 ( @job = Factory.build(:job)) 中的第 6 行。用它代替它可以@job = Job.new正常工作,但是我不再使用迷你裙工厂了。无论工厂是否在JobManager模块中定义,我都会收到此错误。

4

1 回答 1

0

根据 Stephen Celis,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

请参阅https://github.com/stephencelis/miniskirt/issues/19

于 2013-11-04T00:03:27.747 回答