升级到RSpec 3时遇到问题
我正在尝试将我的测试套件升级到RSpec 3。在阅读了如何做到这一点的文档后,我遵循了所有的步骤。。。我已经升级到2.99.2并运行transpec gem(太棒了!)我只剩下一个弃用。。。这:升级到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
`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
应该需要gemx-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期望值,否则我建议您将其删除