RSpec的不符合规格/支撑轨不加载文件(RSpec without rails not loadi

2019-10-22 12:38发布

在文件规范/支持/ factory_girl.rb我有

fail "At least this file is being required"

RSpec.configure do |config|
  config.include FactoryGirl::Syntax::Methods
end

我有一些规范代码

require 'pmc_article'
require 'pmc_article_parser'
require 'factory_girl'
require_relative './factories/pmc_article_factory'

RSpec.describe PMCArticle do
  let(:pmc_article) do
    build(:pmc_article)
  end

  it 'parses pmid' do
    expect(pmc_article.article_id_pmid).to eq '123456'
  end
end

但是当我运行bundle exec rspec我得到

  1) PMCArticle parses pmid
     Failure/Error: build(:pmc_article)
     NoMethodError:
       undefined method `build' for #<RSpec::ExampleGroups::PMCArticle:0x007feac3cc5078>
     # ./spec/pmc_article_spec.rb:8:in `block (2 levels) in <top (required)>'
     # ./spec/pmc_article_spec.rb:12:in `block (2 levels) in <top (required)>'

我认为rspec的失败,要求spec/support/factory_girl.rb ,即使工厂女孩入门指南说我应该把文件存在。

我已经运行命令行命令初始化rspec的时候我开始这个项目,这是我使用的工厂女孩​​项目之前。

为什么不符合规格/支持RSpec的加载文件?

Answer 1:

没有什么神奇的约规格/支持。 如果您使用RSpec的护栏,然后它曾经在那里自动添加一行装载的一切,但作为3.1.0不-看到这个承诺 )。

我只能假设,该工厂女孩文档承担这个现在停用特征的存在。 您可以通过添加打开此对您的项目

Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }

为了您的规格助手或你当然可以认为移动config.include线到主spec_helper文件。

在非轨道的世界,更换Rails.root与地方项目的根。



Answer 2:

虽然FactoryGirl指南建议,支持/ factory_girl.rb配置RSpec的,你仍然需要手动要求的文件。 我建议加入以下到您的spec_helper:

require 'factory_girl' # require the gem
require_relative './support/factory_girl' # this should point to the factory_girl.rb file.


文章来源: RSpec without rails not loading files in spec/support