【发布时间】:2015-11-08 13:40:11
【问题描述】:
我正在开发 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) 中省略jobs_count 参数时,我也会遇到同样的错误。
我做错了吗?您对导致此问题的原因有什么建议吗?
提前致谢。
【问题讨论】:
-
我在我的问题中引用了该帖子。这不是我的问题的解决方案,我在我的问题中也提到过。问题出在瞬态变量定义中的“=”中
标签: ruby-on-rails ruby ruby-on-rails-3 rspec factory-bot