2011-09-23 73 views
2

藝術家如何使用水豚/ rspec的

it "should display error if voting on own artwork", :js => true do 
    sign_in 
    visit "/upcoming" 
    click_link "like_post_1" 
    page.should have_content("Can't vote on your own artwork") 
end 

這是路過就好無法評價自己的作品來測試一個陳舊的鏈接點擊(或鏈接我不能去)。

但是,我不能再點擊like_post_1,因爲我添加了一項功能來防止投票鏈接出現在您自己的作品旁邊。

這是否意味着我不再需要測試此場景的覆蓋範圍,因爲極少有人可以點擊投票鏈接獲取自己的作品?或者應該仍然有覆蓋範圍來測試ajax響應,因爲它沒有在其他地方進行測試,並且有可能在標籤瀏覽器窗口中以某種方式存在一些陳舊的鏈接頁面。如果是這樣......如果我不能撥打click_link,我該如何測試?

我可以嘗試創建一個POST請求以創建投票,但水豚不支持崗位,我無法測試Ajax響應這樣...

還是有辦法來模擬在水豚選項卡式瀏覽?

對此提出建議?

回答

0

您可以使用CSS display:none或visibility:隱藏自己的作品,而不是從DOM刪除鏈接。您可能需要設置

Capybara.ignore_hidden_elements = false 

另一種方法是放棄Capybara並將它們放入控制器/型號規格中。對於極少數情況,控制器/型號規格可能是更好的選擇,或者保護您的應用案例。

0

請試試這個:

使用睡眠功能。

睡眠10使用等待過程高達10秒..

it "should display error if voting on own artwork", :js => true do 
    sign_in 
    visit "/upcoming" 
    click_link "like_post_1" 
    sleep 10 
    page.should have_content("Can't vote on your own artwork") 
end