ruby-on-rails – ‘= undefined方法`build’中的rspec-rails和factory girl块

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – ‘= undefined方法`build’中的rspec-rails和factory girl块前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个带有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.

一个简单的规范:

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)

但是,如果我明确限定了规范中的构建,它会通过:

require 'spec_helper'

describe User do
  FactoryGirl.build(:user)
end

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

解决方法

传递给config.include的方法仅包含在RSpec中的it,let,before和after之后,而不是在describe的顶层.因为那时你通常需要设置你的设置和测试逻辑,实际上它并不是真正的问题.
原文链接:https://www.f2er.com/ruby/264602.html

猜你在找的Ruby相关文章