<top(required)=“”>'中的rspec-rails和factory girl block:未定义的方法`build'</top>

时间:2014-01-30 23:53:59

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

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

# lots of stuff
RSpec.configure do |config|
  # more stuff
  config.include FactoryGirl::Syntax::Methods
end

我还删除了此文件中的rspec/autorun要求。

一个简单的规范:

require 'spec_helper'

describe User do
  build(:user)
end

有一个简单的工厂:

FactoryGirl.define do
  factory :user do
    email     "somename@someplace.com"
  end
end

失败并显示以下消息。

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

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

require 'spec_helper'

describe User do
  FactoryGirl.build(:user)
end

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

1 个答案:

答案 0 :(得分:10)

传递给config.include的方法仅包含在itletbeforeafter块中的RSpec中,而不是顶层describe。因为那时你通常需要设置你的设置和测试逻辑,实际上它并不是一个真正的问题。