天天看點

【助教】關于單元測試(二)

故事還在繼續......

小張童鞋寫的程式一直未報bug,這激發了他繼續程式設計的興趣,于是乎,他又寫了個除法程式,說到除法,就不得不考慮的一種情況:

除數為零怎麼辦? 答:抛出異常。

是以,小張童鞋要解決兩個問題:

除數為零應該抛出什麼異常?(讓小李有心理準備來處理這種異常) 用單元測試怎麼測試這種異常?

為了解決第一個問題:

小張先寫了一個最簡單的版本:

想知道想知道報什麼異常,調用一下就知道了,于是他寫了一個main方法來調用他的除法程式,而且刻意讓除數為零,觀察Eclipse下報了什麼錯。

運作一下發現控制台報錯:

是以第一個問題的答案是:java.lang.ArithmeticException

PS:關于這個異常,無論你百度谷歌必應搜狗,你都可以找到這個異常的意思是什麼,即便是英文版的java的API:

http://docs.oracle.com/javase/8/docs/api/index.html

中對這個異常的英文描述,相信你都可以看得懂:

**Thrown when an exceptional arithmetic condition has occurred. For example, an integer "divide by zero" throws an instance of this class. **

是以,小張自熱而然的把自己的程式處理成這樣:

我們來解決第二個問題:

說到單元測試的情況,我們依然可以借用之前說的那句話:

// 我想測 一測: // 參數傳入 // 我的待測方法裡面, // 得出的結果會不會是:我期待的結果
// 0作為除數傳入 // 我的除法方法裡面, // 得出的結果會不會是:抛出 java.lang.ArithmeticException異常

按照上一篇的方法建立單元測試:

這裡重點看這句:

的意思就是說:當我除數為0時候,我期待程式結果是:

抛出 ArithmeticException異常

運作這個測試方法,顯示綠色條,這種情況測試通過。

小張開開心心的把寫好的的除法程式給小李用,沒想到,"噩夢"才剛剛開始......

繼續閱讀