2011-11-05 30 views
2

我有一個應用程序,每個應用程序至少有50-55個模型,平均有15個方法。是否可以使用Rspec來涵蓋大型rails應用程序的所有方法?

是否有可能&使用rspec & rcov覆蓋所有的方法(包括非常複雜的方法)是否有意義?

我也有以下查詢

是Rspec的也爲控制器,助手&觀點有用嗎?還是黃瓜,應該更有用?

rspec將幫助我減少冗餘?如果是,如何?

rspec對持續改變需求的應用程序有用嗎?

回答

6

當然可以用測試來覆蓋所有的方法,如果您之前開始編寫測試,通常會導致長期的應用程序更精簡。另一方面,100%的測試覆蓋率並不能確保您的應用程序代碼質量更好,或者您的團隊的工作效率更高。它唯一可能確保的是你的應用程序缺少了很少的缺陷,並且在重構的情況下你不會破壞任何東西,然後反對覆蓋所有測試方法的論點:

更多的時候你會重構和維護代碼,這通常涉及添加新方法和擺脫其他方法。

我想說,對所有由其他對象或視圖,控制器,助手等調用的公共方法進行測試是很好的。並且測試所有相關的API方法,但是沒有必要使用每一種方法測試。

另一方面,它將取決於您的應用程序本身,而不是關於它的抽象對話。

你不得不問自己,它是否值得,它增加了什麼價值等,如果它是有道理的,去爲它。無論你選擇在純rspec,或使用黃瓜,shoulda,水豚等

+0

thanx快速回答埃蘭..........如果你說「100%的測試覆蓋不能確保你的應用程序代碼質量更好「是否有任何工具可以確保質量? – Salil

+1

@Salil實踐嚴格的BDD,實際上先寫規格是確保質量的重要部分。如果你的測試永遠無法開始,那麼你不知道你的代碼是否真的讓它們通過。另一件事是,沒有替代手動測試/探索的東西。當你發現一個bug時,先寫一個失敗的測試,然後修復它。最後,我認爲使用Cucumber進行集成測試和RSpec進行單元測試是一個甜蜜點。它可以幫助你構建寫得很好的代碼,它正在做它應該做的事情。 100%的覆蓋率實際上是100%的信心。 –

+0

我的想法正是我喜歡使用combo cucumber/rspec,黃瓜來測試應用程序本身,驗收測試等,rspec來測試模型,控制器和請求等。最後,唯一可以保證質量的方法是正在招聘/成爲一名優秀的程序員,並且擁有良好的開發指導方針,例如讓代碼由同伴開發人員進行審查或進行配對編程。 :) – Elland

相關問題