0

我正在尝试为重定向链接数据库设置 RESTful API。我在 cucumber 中设置了很多测试,其中一个是当用户在 /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

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

4

1 回答 1

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

于 2013-02-22T14:15:35.947 回答