您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源單元測(cè)試工具 > junit
單元測(cè)試(Junit3.8)原則和測(cè)試用例
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/9/26 11:27:50 ] 推薦標(biāo)簽:單元測(cè)試 Junit 測(cè)試用例

  (1)對(duì)方法有拋出異常的方法設(shè)計(jì)測(cè)試用例
如果被測(cè)試方法拋出異常。則需要設(shè)計(jì)兩個(gè)測(cè)試用例
  1),設(shè)計(jì)正常的用例
 在測(cè)試用例中try catche 然后捕獲后設(shè)置斷言為Assert.fail();
 public void testDivide(){
  int result = 0;
  try{
   result = cal.divide(6, 2);
  }
  catch (Exception e){
   e.printStackTrace();
   Assert.fail("測(cè)試失敗");
  }
 
  Assert.assertEquals(3, result);
 }
  2),設(shè)計(jì)拋出異常的用例
       public void testDivideDivideByZero(){
  Throwable tx = null;
  try{
   cal.divide(6, 0);
   Assert.fail("測(cè)試失敗");
  }
  catch(Exception ex){
   tx = ex;
  }
  //判斷是否拋了異常
  Assert.assertNotNull(tx);
  //判斷異常類(lèi)型是否一致
  Assert.assertEquals(Exception.class, tx.getClass());
  //判斷異常信息是否一致
  Assert.assertEquals("除數(shù)不能為0", tx.getMessage());
 }
 
  3)、私有方法的測(cè)試,使用類(lèi)的反射機(jī)制
 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();
  }
 }

上一頁(yè)12下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd