我現在稱作第三方Web服務作爲我的應用程序的一部分。我正在使用RestClient gem來執行此操作。有很多工具可以用來做同樣的事情,所以這不重要。Ruby on Rails:測試對第三方API調用失敗的最佳方法
我很好奇的是有足夠好的測試,沒什麼太花哨的,我可以模擬我的應用程序如何響應,無論什麼原因第三方Web服務不可用時。不管是因爲網絡延遲/複雜性,我超過了速率限制或超時時間,我只是希望能夠像HTTP狀態代碼一樣測試我的應用程序在這種情況下的功能。
Test :: Unit的最佳做法是什麼?現在,對第三方服務的調用被封裝在我的一個控制器中。我有一個簡單的模塊,其中包含遠程服務的不同端點的一些包裝方法。我只想確保我的應用程序在服務或不可用時執行正確的操作。
在Test :: Unit旁邊使用了一個額外的框架,可以'存根'正確的方式去做這件事嗎?顯然,我不能強制網絡超時,並開始嘗試像IPtables這樣的測試工作,但這不值得花時間。我相信這個問題已經解決了上百萬次,因爲現在將諸如Facebook和Twitter這樣的東西整合到網絡應用程序中非常受歡迎。如何以穩定/可控的格式訪問這些API時如何測試失敗?