我正在尝试为重定向链接数据库设置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。任何人都知道如何检查这种重定向是否真的有效?
答案 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:migrate
和rake db:test:prepare