Ruby on rails 试图访问夹具的NoMethodError
我正在将项目的测试套件迁移到rspec。我在尝试访问我的设备时遇到以下错误: nil:NilClass的未定义方法“[]” 以下是一个规范文件示例:Ruby on rails 试图访问夹具的NoMethodError,ruby-on-rails,ruby-on-rails-4,rspec,rspec-rails,fixtures,Ruby On Rails,Ruby On Rails 4,Rspec,Rspec Rails,Fixtures,我正在将项目的测试套件迁移到rspec。我在尝试访问我的设备时遇到以下错误: nil:NilClass的未定义方法“[]” 以下是一个规范文件示例: require 'rails_helper' feature "edit contacts" do fixtures :contacts before(:all) do @thing = contacts(:two) end scenario "do a thing" do visit new_contact_
require 'rails_helper'
feature "edit contacts" do
fixtures :contacts
before(:all) do
@thing = contacts(:two)
end
scenario "do a thing" do
visit new_contact_path
end
end
我在before块中得到错误,在呼叫contacts:two时
下面是rails\u helper.rb的配置信息
RSpec.configure do |config|
config.infer_spec_type_from_file_location!
config.fixture_path = "#{::Rails.root}/spec/fixtures"
end
以下是Gemfile.lock的版本信息:
rails (4.0.13)
rspec-core (3.2.2)
rspec-expectations (3.2.0)
rspec-mocks (3.2.1)
rspec-rails (3.2.1)
rspec-support (3.2.2)
如果需要,我很乐意提供任何额外的支持信息。感谢您的关注,感谢您的帮助 好的-在同事的帮助下终于解决了这个问题。问题是我应该使用before:each而不是before:all 显然,使用:each会在ActiveRecord::FixtureSet中触发一个“before_setup”回调,该回调设置了所有装置,而:all则不会 根据报告: before:每个块在每个示例之前运行before:所有块在组中所有示例之前运行一次 YAML.loadFile.readRails.root.join'spec'、'fixtures.yml'是否返回有效的YAML内容?有点像大杂烩