2013-01-24 54 views
1

在頁面底部檢查編輯Rails的Rspec的和水豚 - 使用執行,嗯,有點考驗

我的老闆有一個網站地圖,向上它基本上只是作爲鏈接的每個路由,一鍵點擊說「有效?」或「忽略」,這將標記爲有效或在頁面上忽略它。

他讓我手動檢查並單擊每個鏈接,測試該頁面不是500或404,然後將其標記爲有效,如果不是。

這對我來說似乎很無聊,因爲它基本上只是一個面向工作路線的測試用戶。

我可以在同一時間在Rspec中寫出所有路由規範,但我想他需要某種類型的文檔,這種文檔是在自己和用戶的前端進行的。

我在想一個有趣的方法來解決這個無聊的點擊將是用一些編程來完成,而寫入規格。讓他開心,並且可以爲可重複使用的應用增加實際價值和測試。

有沒有一種辦法,在規範,寫類似:

links = page.all('a.routing-links) 
link.each do |link| 
    link.click 
    if page status != 404 || 500 
    Link.find(id).update_attribute("verified", true) 
    end 
end 

我試圖把在我的規格,但是當link.click打一個不正確的路線,它停止測試(這使得有道理的,因爲這條路線被打破,這是一個考驗。

我想什麼是能夠採取的錯誤,並用它來更新我的模型的屬性。

我要對這個完全錯誤?任何更好的想法或靈感?

感謝

編輯

我同意誰說,這是最好留給一個腳本或耙任務的海報。

如何編寫一個腳本,該腳本將轉到頁面,查找每個鏈接,記錄其status_code,然後查找和更新模型,我有點失落。任何建議或提示?理想情況下,它將在應用程序中運行,以便我可以訪問我的模型和控制器。

感謝

回答

1

個人而言,我不會真的把它放進一個規範的,因爲你實際上並不期待任何失敗。

相反,我會創建一個快速腳本,或者甚至是rake任務來按照您所描述的方式運行鏈接。

話雖這麼說,這篇文章:http://agileleague.com/2012/12/rails-3-2-custom-error-pages-the-exceptions_app-and-testing-with-capybara/詳細介紹瞭如何繞過正常的失敗,在這種情況下,即:

在你config/environments/test.rb

config.consider_all_requests_local = false 
config.action_dispatch.show_exceptions = true 

儘管這會影響到所有的測試,這很可能是不是你想要的。

此外,在測試時您可能很快就會發現一件小事 - 您要麼在點擊鏈接後重新訪問列表頁面,要麼依靠鏈接點擊,您可以訪問href反而會更快一點。

links = page.all('a.routing-links') 
link.each do |link| 
    visit link[:href] 
    if page.status != 404 || 500 
    Link.find(id).update_attribute("verified", true) 
    end 
end 

我沒有測試過,所以不知道是否會工作這樣,但你應該能夠明白我的意思。

+0

我同意這不一定是一個測試。我將編輯我的問題,並專注於製作腳本或耙測試。謝謝回覆。 – Squadrons