2012-09-24 89 views
2

我試圖寫一個測試,點擊一個鏈接,但是當我運行測試,水豚返回以下錯誤鏈接:水豚不能點擊鏈接,響應包含顯示

"no link with title, id or text 'New Mwod post' found 

所以我把一個'調試器'並打印迴應。身體包含以下內容:

<a href=\"/mwod_posts/new\">New Mwod post</a> 

測試有以下代碼:

describe "GET /mwod_posts/new" do 
    it "creates a new mwod post" do 
    FactoryGirl.create(:mwod_tag) 
    get mwod_posts_path 
    debugger 
    response.status.should be(200) 
    click_link "New Mwod post" 
    end 
end 

任何想法,爲什麼水豚不能點擊鏈接?

回答

1

問題是,當您應該使用visit時,您正在使用get

開關:

get mwod_posts_path 

到:

visit mwod_posts_path 

,讓你點擊鏈接與click_link等解析響應,你需要改變:

response.status.should be(200) 

至:

page.response_code.should be(200) 

我實際上沒有確認這是可行的,但discussion elsewhere似乎表明您可以從page這種方式檢查響應代碼。雖然,正如在討論中指出的那樣,但這不是你應該在集成測試中真正做的事情。

欲瞭解更多關於getvisit之間的差異請參閱this answerthis post。 (這是一個常見的混亂點)。

+0

謝謝,我讀了更多。在正常的集成測試中獲得PATH和response.status。水豚使用訪問和page.response_code。 Response.status沒有通過水豚填充,所以這是行不通的。再次感謝。 – CAB