單元測試(Junit3.8)原則和測試用例
作者:
網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:
[ 2014/9/26 11:27:50 ] 推薦標(biāo)簽:
單元測試 Junit 測試用例
(1)對方法有拋出異常的方法設(shè)計測試用例
如果被測試方法拋出異常。則需要設(shè)計兩個測試用例
1),設(shè)計正常的用例
在測試用例中try catche 然后捕獲后設(shè)置斷言為Assert.fail();
public void testDivide(){
int result = 0;
try{
result = cal.divide(6, 2);
}
catch (Exception e){
e.printStackTrace();
Assert.fail("測試失敗");
}
Assert.assertEquals(3, result);
}
2),設(shè)計拋出異常的用例
public void testDivideDivideByZero(){
Throwable tx = null;
try{
cal.divide(6, 0);
Assert.fail("測試失敗");
}
catch(Exception ex){
tx = ex;
}
//判斷是否拋了異常
Assert.assertNotNull(tx);
//判斷異常類型是否一致
Assert.assertEquals(Exception.class, tx.getClass());
//判斷異常信息是否一致
Assert.assertEquals("除數(shù)不能為0", tx.getMessage());
}
3)、私有方法的測試,使用類的反射機制
public void testAdd()
{
try{
Calculator cal = new Calculator();
Class<Calculator> clazz = Calculator.class;
Method method = clazz.getDeclaredMethod("add", new Class[] {
Integer.TYPE, Integer.TYPE });
method.setAccessible(true);
Object result = method.invoke(cal, new Object[] { 2, 3 });
Assert.assertEquals(5, result);
}
catch (Exception ex){
Assert.fail();
}
}