升级到RSpec 3时遇到问题

升级到RSpec 3时遇到问题,rspec,gem,rspec-rails,Rspec,Gem,Rspec Rails,我正在尝试将我的测试套件升级到RSpec 3。在阅读了如何做到这一点的文档后,我遵循了所有的步骤。。。我已经升级到2.99.2并运行transpec gem(太棒了!)我只剩下一个弃用。。。这: `require 'rspec-expectations'` is deprecated. Use `require'rspec/expectations'` instead. Called from /Users/kierancormack/.rbenv/versions/1.9.3-p484

我正在尝试将我的测试套件升级到RSpec 3。在阅读了如何做到这一点的文档后,我遵循了所有的步骤。。。我已经升级到2.99.2并运行transpec gem(太棒了!)我只剩下一个弃用。。。这:

`require 'rspec-expectations'` is deprecated. Use `require'rspec/expectations'` instead. Called from     /Users/kierancormack/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/bundler-1.8.3/lib/bundler/runtime.rb:76:in `require'.
我不明白我该做什么。我已经将我的GEM文件更改为这样,但它只是抛出了一个错误。我在spec_helper.rb中需要它,但我似乎无法让它消失

有人对如何应对这种不赞成有什么建议吗

感谢

rspec2.x提供了一个文件,该文件只需委托
要求“RSpec/expections”
。然而,ruby社区的一般惯例是,gem名称中的破折号对应于顶级文件名中的
/
——因此大多数ruby程序员都知道,使用
x/y
应该需要gem
x-y
。作为3.0春季大扫除的一部分,我们删除了
rspec expectations
文件,因为它是一个不必要的间接层。因此,您需要要求
rspec/expectations
,而不是
rspec expectations

在您的情况下,堆栈跟踪使它看起来像是捆绑机中发生的
require
。使用
Bundler.require
时,它会尝试为
Gemfile
中的每个gem请求一个与gem名称匹配的文件。有,但是如果您要使用它,这里的修复方法是将
:require=>“rspec/expections”
添加到
gem文件中的
gem'rspec expections'
行中

实际上,如果您正在使用
rspec核心
(单独使用,或通过
rspec轨道
),则根本不需要
rspec/期望
rspec core
将在适合您的时间加载它,因此您可以使用
:require=>false
来防止bundler尝试需要它

事实上,我们可以向前迈出一步:
rspec核心
rspec轨道
都依赖于
rspec期望
,因此通常不需要将
rspec期望
放在
Gemfile
中,除非您正在做一些特殊的事情(例如尝试使用github的叉子或头)或者您自己使用它,而不使用
rspec-core
rspec-rails
。因此,除非您有特定的理由在
Gemfile
中列出
rspec期望值,否则我建议您将其删除