2013-05-30 193 views
0

我創建了一堆用於個人使用的庫,並將自定義錯誤交給我的代碼。錯誤處理和單元測試以及代碼覆蓋率

我把這些錯誤消息放在很多地方(以及可能發生錯誤的地方,或發生不可預知的事情)。

現在我創建測試類我的圖書館(好其實我創建測試類,我走,但是......)

我一直在做代碼覆蓋率等一些閱讀,並我有一個關於我的過程的問題(我想養成良好的習慣)。

如上所述,我的方法做了很多錯誤處理。

在我的測試,我創建2個測試

  • 成功:測試對於預期收益的項目(值,對象等)。
  • 失敗:傳入錯誤的東西,並檢查是否收到錯誤消息。

這看起來像是測試我的代碼的有效方法,但我讀得越多,我就越不確定。

歡迎任何有關如何改進我的測試的建議(或指向網上的資源)。

由於提前,

,如果這似乎是一個「愚蠢」的問題對不起(這確實給我....痘痘位)

回答

2

這聽起來像是測試的一個好辦法我。如果您測試每種可能的情況並獲得每種方法的所有結果,那麼您可以做些什麼?

確保測試成功運行,然後查看您的代碼並查看可能出錯的所有內容。測試它是否以你期望的方式失敗,並拋出期望的異常等等。因此,不要只寫兩個像你現在這樣的測試,而是寫一個用於每個可能的失敗,以及一些測試,以檢查它是否通過預期。這可能意味着寫了很多測試。

舉例來說,如果你有代碼是這樣的:

if (x && y && z) { 
    ... 
} else { 
    ... 
} 

那麼它可能是一個好主意,以測試會發生什麼,如果X和Y,但沒有ž出現,如果單獨出現的x,如果y和z等等。這可能看起來很小,但儘可能覆蓋儘可能多的場景是一個好主意。

在養成良好習慣方面,編寫測試的最好方法就是隨着時間寫出測試。所以,寫一個測試,編寫代碼來通過測試,重複。這意味着所寫的所有代碼都會增加價值,並幫助您將問題分解爲更小的塊。這就是所謂的TDD(測試驅動開發)。有很多地方可以在TDD上在線閱讀,包括網站如http://www.agiledata.org/essays/tdd.html

希望此答案有幫助。如果您對我所說的任何事情有任何額外的解釋,請告訴我。

+0

謝謝本,我只是有點擔心測試我的錯誤消息可能不是正確的/最好的方式去(特別是當我測試字符串值從評論)。當我發生多重'失敗點'時,我傾向於使用單個測試同時測試所有這些測試,如果任何一個組'然後'失敗',沒有給出預期結果,那麼整個組失敗了,然後我不得不將它分成更小的部分,讓每個部分單獨傳遞,我想這就是他們說'測試套件'時的含義。感謝您的放心。 – DaveM