我們在testDivide方法加入測試代碼,分別測試三種情況:
a. 完全正確也沒有可能出錯的數據,如:9除3 結果必須等于3
b. 可能有問題的邊緣數據,如:10除3 結果也必須等于3
c. 錯誤的數據,如:10除0 必須拋出異常
忽略testMultiple方法
代碼如下:
Java代碼
@Test(expected=ArithmeticException.class)
public void testDivide() {
assertEquals(3,Math.divide(9,3));
assertEquals(3,Math.divide(10,3));
Math.divide(10,0); //除數不能為0,會拋出異常
}
@Ignore("忽略乘法測試")
@Test
public void testMultiple() {
}
@Test(expected=ArithmeticException.class)
public void testDivide() {
assertEquals(3,Math.divide(9,3));
assertEquals(3,Math.divide(10,3));
Math.divide(10,0); //除數不能為0,會拋出異常
}
@Ignore("忽略乘法測試")
@Test
public void testMultiple() {
}
說明:
Junit4為測試方法增加了判斷異常的方式,避免了以前還要通過try/catch塊捕捉異常再拋出的復雜方式,簡單的這樣聲明“@Test(expected=ArithmeticException.class)”Junit4就會檢查此方法是否拋出ArithmeticException異常,如果拋出則測試通過,沒拋出則測試不通過(@Test標簽還有一些其他參數,例如超時測試@Test(timeout=1)這樣,但是由于并不能準確反應實際時間,所以應用較少,經過我測試誤差太大絕對不適合拿來做超時測試的)
@Ignore標簽會告訴Junit4忽略它所標注的方法,例如數據庫不可用時可以用此標注標注一些測試數據庫連接的方法來避免測試失敗。
文章來源于領測軟件測試網 http://www.kjueaiud.com/