factory_girl瞬态属性的未定义方法

时间:2015-08-15 12:17:08

标签: ruby-on-rails ruby ruby-on-rails-3 rspec factory-bot

我正在使用rails 3(rails (3.2.13))应用程序,我正在factory_girl_rails (4.5.0)使用rspec (2.13.0)

我有一个delivery工厂,看起来像这样

FactoryGirl.define do

  factory :delivery do

    trait :assigned do
      delivery_type 1
    end

    trait :started do
      delivery_type 2
    end

    factory :delivery_with_jobs do

      ignore do
        jobs_count = 2
        duration = 10
      end

      after(:create) do |delivery, evaluator|
        create_list(:job, evaluator.jobs_count, delivery: delivery, client: delivery.client)
      end
    end
  end
end

我尝试在我的规范中实例化

let!(:delivery_with_jobs) {
        FactoryGirl.create(
            :delivery_with_jobs,
            :started,
            jobs_count: 3,
            user: user,
            current_user: user,
            account: user.account,
            client: client
        )
      }

问题是我在运行测试时以及尝试在rails控制台中创建工厂时不断获得NoMethodError: undefined method 'jobs_count' for #<FactoryGirl::SyntaxRunner:0x000000079e5f00>。我的factory_girl and have found this post的版本较低ignore。所以我试图将关键字更改为FactoryGirl.create(:delivery_with_jobs)并没有帮助,所以我尝试升级工厂女孩,这也没有帮助。

当我从GetSizer()中省略jobs_count参数时,我也会收到同样的错误。

我做错了吗?你对这个问题的原因有什么建议吗?

提前致谢。

0 个答案:

没有答案