我正在使用Rspec 2.14.2为我的Rails 4.0应用程序编写请求规范,每当我尝试运行这些测试时,它们都能正常工作,但在命令行上吐出这个弃用警告:
DEPRECATION WARNING: ActionController::Integration is deprecated and will be removed, use ActionDispatch::Integration instead.
正如我所说,这些规格完美无缺,我在网上找不到任何可以解决此弃用警告的内容,所以我的猜测是我的规范代码存在问题。我的spec文件如下
require 'spec_helper'
describe "Authenticating" do
it "should create a new authentication" do
expect {
visit "/auth/developer"
}.to change { Authentication.count }.by(1)
end
it "should create a new user" do
expect {
visit "/auth/developer"
}.to change { User.count }.by(1)
end
it "should create a new device" do
expect {
visit "/auth/developer"
}.to change { Device.count }.by(1)
Device.last.registration_id.should_not be_nil
end
describe "with an existing user and authentication" do
before do
@test_user.authentications.create(:provider => "developer", :uid => "my@email.com")
end
it "shouldn't create a new authentication" do
expect {
visit "/auth/developer"
}.not_to change { Authentication.count }.by(1)
end
it "shouldn't create a new user" do
expect {
visit "/auth/developer"
}.not_to change { Authentication.count }.by(1)
end
it "should create a new device" do
expect {
visit "/auth/developer"
}.to change { Device.count }.by(1)
@test_user.devices.last.registration_id.should_not be_nil
end
end
end
当然,弃用警告不会影响我的测试的实际功能,但每当我运行rspec spec
时它们出现时它们都很烦人,我真的很想摆脱它们
谢谢!
答案 0 :(得分:1)
我怀疑您使用的是Webrat,答案是从Webrat转移到Capybara。
截至目前,Webrat近一年没有更新。
据称,它就像编辑Gemfile一样简单。但实际上,您可能不得不重写大部分验收规范(正如我目前所要做的那样)。
如果您与Webrat结合,那么gem中的违规代码似乎是here。您可以随时修复它并提交拉取请求。
但是转向更新更新的Capybara宝石似乎是一个更好的想法,长期。
答案 1 :(得分:0)
您使用的是Webrat吗?如果是这样,请尝试使用Capybara将其替换为gemfile。如果这样做,请确保将以下内容添加到RSpec.configure块中的spec_helper.rb:
config.include Capybara::DSL
至少,这就是让警告消失的原因......在使用M. Hartl的Rails Tutorial源代码时,得到了上述内容。
答案 2 :(得分:-1)
在这些文件中打开,查找和替换:
rspec.rb
world.rb
查找:ActionController
替换为:ActionDispatch
在我的发行版中,这些文件位于:
/home/>>>>>> YOUR USER NAME HERE <<<<<<</.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/cucumber-rails-1.3.0/lib/cucumber/rails/
和
/home/>>>>>> YOUR USER NAME HERE <<<<<<</.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/cucumber-rails-1.3.1/lib/cucumber/rails/
或者只是在终端中找到“locate”的文件,例如
$ locate rspec.rb
如果找不到,请先尝试:
$ sudo updatedb