2013-02-17 118 views
0

我想設置一個RESTful API的重定向鏈接數據庫。我在黃瓜裏設置了很多測試,其中一個是用戶在/ links /:id上執行GET操作。這應該是將用戶重定向到鏈接。它在瀏覽器中工作,但我在黃瓜中設置此測試時遇到了一些麻煩。紅寶石軌道︰黃瓜瓦特/水豚去applicationController on redirect_to

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送我去這個節目的方法:

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

的問題是在這一點黃瓜失敗,當部分抱怨我沒有對應用程序/索引的模板。由於某種原因,它不會重定向我,而是會轉到我自己站點的root_path。任何人都知道如何檢查這種重定向是否真的有效?

回答

0

你有沒有嘗試在RSpec而不是黃瓜測試它?嘗試這樣的事情,看看它的工作原理:

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 and rake db:test:prepare