困惑 - spec_helper.rb:94:在` ':未初始化的常量Shoulda(NameError)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了困惑 - spec_helper.rb:94:在` ':未初始化的常量Shoulda(NameError)相关的知识,希望对你有一定的参考价值。
我正在开发一个带有Rails 4和Mongoid 4的项目。我正在尝试设置Shoulda-matchers(版本2.8.0),跟随thoughtbot/shoulda-matchers,它指向另一个名为README for 2.8.0的自述文件。我希望使用mongoid-rspec进行测试。
但是我继续得到spec_helper.rb:94:in '<top (required)>': uninitialized constant Shoulda (NameError)
我在Gemfile
中添加了这个:跟随thoughtbot/shoulda-matchers
group :test do
gem 'shoulda-matchers'
end
我还在spec_helper.rb
中添加了(这是错误的来源) - 跟随thoughtbot/shoulda-matchers
Shoulda::Matchers.configure do |config|
config.integrate do |with|
with.test_framework :rspec
with.library :rails
end
end
我试过谷歌搜索,但没有直接的解决方案(或者没有直接的问题)。在require: false
之后,我在Gemfile中添加了README for 2.8.0
group :test do
gem 'shoulda-matchers', require: false
end
我在require 'shoulda/matchers'
中添加了rails_helper.rb
。我的'要求'的顺序是这样的:
require 'spec_helper'
require 'rspec/rails'
require 'shoulda/matchers'
要求'rspec / rails'默认情况下需要'spec_helper'。通过github页面上提供的README,我应该将shouldamatcher
放在'rspec / rails'下面。我也尝试将require 'shoulda/matchers'
放在require 'spec_helper'
之上,但它没有用。
我的版本:
Rails 4.2.1
Ruby 2.2.1
Mongoid ~ 4.0.0
rspec-rails ~ 3.0
mongoid-rspec ~ 2.1.0
shoulda-matchers 2.8.0
我非常感谢任何帮助。
从您提供的链接:
注意:新配置语法尚未在公共版本中提供 - 有关当前安装说明,请参阅自述文件2.8.0。
该说明来自主分支。当前版本(2.8.0)有一组不同的文档。令我感到困惑,我知道。
只需从spec/spec_helper.rb
删除该配置部分,所有应该再次为彩虹和独角兽。
只需将这些行插入spec/spec_helper.rb
:
config.include(Shoulda::Matchers::ActiveModel, type: :model)
config.include(Shoulda::Matchers::ActiveRecord, type: :model)
参考:
https://github.com/thoughtbot/shoulda-matchers#availability-of-matchers-in-various-example-groups
以上是关于困惑 - spec_helper.rb:94:在` ':未初始化的常量Shoulda(NameError)的主要内容,如果未能解决你的问题,请参考以下文章
ruby 第1步 - 测试ElasticSearch - spec_helper.rb