Ruby on rails:带有Capybara的Cucumber在redirect_to上转到ApplicationController

时间:2013-02-17 17:08:24

标签: ruby-on-rails rest cucumber

我正在尝试为重定向链接数据库设置RESTful API。我在黄瓜中设置了很多测试,其中一个是用户在/ links /:id上进行GET操作。这应该将用户重定向到链接。它在浏览器中工作,但我在黄瓜中设置此测试时遇到一些麻烦。

Given /^The link id part of the URL matches an existing entry in the links table$/ do
 FactoryGirl.create(:users)
 FactoryGirl.create(:links, :OWNER_USERID => Users.first.id)
 Users.count.should==1
 Links.count.should==1
end

When /^you use GET on link$/ do
 visit link_path(Links.first.id)
end

指定的link_path将我发送到此show方法:

def show
 redir=Links.find_by_id(params[:id])
 redirect_to redir.target, :status=>307
end

问题在于黄瓜在When部分抱怨我没有应用程序/索引的模板时失败了。出于某种原因,它不会重定向我,而是转到我自己网站的root_path。任何人都知道如何检查这种重定向是否真的有效?

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用RSpec而不是Cucumber进行测试?尝试这样的事情,看看它是否有效:

describe "testing links" do
  subject { page } 
  describe "use GET on link" do
    let(:links) { Links.first }
    before { get link_path(Links.first.id) }
    specify { response.should redirect_to("http://example.com") }
  end
end

如果在进行测试之前正确配置并填充了测试数据库,请确保测试数据库。

rake db:migraterake db:test:prepare