1
當我試圖使用我在Ruby on Rails中爲Post模型創建的工廠時,基本上出現錯誤。FactoryGirl undefined method`create ='
以下是完整的錯誤:
Failure/Error: post = create(:post)
NoMethodError:
undefined method `create=' for #<Post:0x007fbf1be6e510>
Did you mean? created_at=
# ./spec/models/post_spec.rb:6:in `block (2 levels) in <top (required)>'
下面是工廠的文件:
spec/factories/post.rb
FactoryGirl.define do
factory :post do
title "Hello"
content "Hello, my name is Jacob."
user create(:user)
user_id 1
end
end
spec/models/post_spec.rb
require 'rails_helper'
require 'spec_helper'
describe Post do
it "has a valid factory" do
post = create(:post)
expect(post).to(be_valid)
end
end
我確實有一個spec/support/factory_girl.rb
文件,其中包含FactoryGirl :: Syntax :: Methods。該文件由spec/rails_helper.rb
加載。
此外,創建(:用戶)線的工作原理,我能夠在軌道控制檯,但不是後工廠使用用戶工廠。
任何幫助將是太棒了。謝謝!
有幾條評論......您的'rails_helper.rb'是否已經不需要'spec_helper'?另外,代替'post = create(:post)',通常在'it'語句之外使用'let(:post){create:post}',特別是如果您要對該帖子執行很多測試目的。 – Jon
你說得對。它已經需要'spec_helper'。並感謝您的提示! – JGrishey