<top(必需)>'中的rspec-rails和factory girl块:未定义的方法`build'

Ste*_*oss 6 rspec ruby-on-rails factory-bot

我有一个带有FactoryGirl和rSpec的新Rails 4项目.在我的spec_helper.rb身上:

# lots of stuff
RSpec.configure do |config|
  # more stuff
  config.include FactoryGirl::Syntax::Methods
end
Run Code Online (Sandbox Code Playgroud)

我还删除了rspec/autorun此文件中的require.

一个简单的规范:

require 'spec_helper'

describe User do
  build(:user)
end
Run Code Online (Sandbox Code Playgroud)

有一个简单的工厂:

FactoryGirl.define do
  factory :user do
    email     "somename@someplace.com"
  end
end
Run Code Online (Sandbox Code Playgroud)

失败,显示以下消息.

`block in <top (required)>': undefined method `build' for #<Class:0x007fd46d0e3848> (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

但是,如果我build在规范中明确限定它通过:

require 'spec_helper'

describe User do
  FactoryGirl.build(:user)
end
Run Code Online (Sandbox Code Playgroud)

我能做什么,所以我不必FactoryGirl每次都添加?

Pet*_*vin 10

通过方法config.include的内仅包括在由RSpec的it,let,beforeafter块,而不是在顶部级别describe.因为那时你通常需要设置你的设置和测试逻辑,实际上它并不是真正的问题.

  • </羞怯的样子> (4认同)