故事還在繼續......
小張童鞋寫的程式一直未報bug,這激發了他繼續程式設計的興趣,於是乎,他又寫了個除法程式,說到除法,就不得不考慮的一種情況:
除數為零怎麼辦?所以,小張童鞋要解決兩個問題: 為了解決第乙個問題:答:丟擲異常。
小張先寫了乙個最簡單的版本:
package com.hui.demo;
public class core
}
想知道想知道報什麼異常,呼叫一下就知道了,於是他寫了乙個main方法來呼叫他的除法程式,而且刻意讓除數為零,觀察eclipse下報了什麼錯。
import com.hui.demo.core;
public class t
}
執行一下發現控制台報錯:
exception in thread "main" j**a.lang.arithmeticexception: / by zero
at com.hui.demo.core.divide(core.j**a:5)
at t.main(t.j**a:6)
所以第乙個問題的答案是:j**a.lang.arithmeticexception
中對這個異常的英文描述,相信你都可以看得懂:
**thrown when an exceptional arithmetic condition has occurred. for example, an integer "divide by zero" throws an instance of this class. **所以,小張自熱而然的把自己的程式處理成這樣:
package com.hui.demo;
public class core
return a/b;
}}
我們來解決第二個問題:
說到單元測試的情況,我們依然可以借用之前說的那句話:
// 我想測 一測://引數傳入
// 我的待測方法裡面,
// 得出的結果會不會是:我期待的結果
// 我想測 一測://0作為除數傳入
// 我的除法方法裡面,
// 得出的結果會不會是:丟擲 j**a.lang.arithmeticexception異常
package com.hui.demo.test;
import static org.junit.assert.assertequals;
import org.junit.test;
import com.hui.demo.core;
public class coretest
@test(expected=arithmeticexception.class)
public void testdividezero()
}
這裡重點看這句:
(expected=arithmeticexception.class)
的意思就是說:當我除數為0時候,我期待程式結果是:
丟擲 arithmeticexception異常執行這個測試方法,顯示綠色條,這種情況測試通過。
小張開開心心的把寫好的的除法程式給小李用,沒想到,"噩夢"才剛剛開始......
關於單元測試的學習記錄
在開發過程中,單元測試必不可少,針對本人開發經驗 主要是整合spring mybatis等開發框架 歸納以下倆種單元測試,當作學習筆記和作為簡單總結,後期如有接觸新的方式,再進行修改。1 基於spring的單元測試 註解方式 runwith springjunit4classrunner.class...
關於單元測試提出的思考
對於開發者來說,軟體測試,特別是單元測試,也是在開發過程中的重要組成部分。對於負責的系統 功能模組來說,做好單元測試,對保證產品質量有非常重要的作用。此外,做好單元測試,還能提高開發者開發思維的嚴謹性 啟發功能模組解耦 測試驅動開發 以下提出單元測試常見的問題和提供使用的解決方案。待完善 有的時候做...
關於單元測試的一些思考
邏輯直接了當 盡量少的依賴 乾淨利落的抽象以及直截了當的控制語句 沒有改進的餘地 以上內容都提取自 整潔之道 總結下來就是 簡單,簡潔,簡短.那麼提高程式正確性最有效的方法是什麼呢?在我看來,最有效的方法莫過於對 反覆琢磨推敲,讓它變得簡單,直觀,直到你一眼就可以看得出它不可能有問題。談程式的正確性...