故事還在繼續......
小張童鞋寫的程式一直未報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異常
運作這個測試方法,顯示綠色條,這種情況測試通過。
小張開開心心的把寫好的的除法程式給小李用,沒想到,"噩夢"才剛剛開始......