您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源單元測(cè)試工具 > junit
JUnit測(cè)試骨架簡(jiǎn)介
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/12/10 16:44:43 ] 推薦標(biāo)簽:Junit 單元測(cè)試

  JUnit是由Erich Gamma和Kent Beck編寫(xiě)的一個(gè)回歸測(cè)試框架(regression testing framework)。Junit測(cè)試是程序員測(cè)試,即白盒測(cè)試。
  JUnit測(cè)試骨架
  使用JUnit時(shí),主要都是通過(guò)繼承TestCase類(lèi)別來(lái)撰寫(xiě)測(cè)試用例,使用testXXX()名稱(chēng)來(lái)撰寫(xiě)單元測(cè)試。
  用JUnit寫(xiě)測(cè)試真正所需要的三件事:
  1.一個(gè)import語(yǔ)句引入所有junit.framework.*下的類(lèi)。
  2.一個(gè)extends語(yǔ)句讓你的類(lèi)從TestCase繼承。
  3.一個(gè)調(diào)用super(string)的構(gòu)造函數(shù)
  功能類(lèi)MathTool
  package com.zj.c01;
  public class MathTool{
  public static int gcd(int num1,int num2){
  int r=0;
  while(num2!=0){
  r=num1%num2;
  num1=num2;
  num2=r;
  }
  return num1;
  }
  }
  測(cè)試類(lèi)MathToolTest
  package com.zj.c01;
  import junit.framework.TestCase;
  public class MathToolTest extends TestCase{
  public MathToolTest(String name){
  super(name);
  }
  public void testGcd(){
  assertEquals(5,MathTool.gcd(10,5));
  }
  }
  使用Eclipse-Run As JUnit Test
  在運(yùn)行TestRunner執(zhí)行測(cè)試時(shí),你會(huì)發(fā)現(xiàn)到有Failure與Error兩種測(cè)試尚未通過(guò)的信息。
  Failure指的是預(yù)期的結(jié)果與實(shí)際運(yùn)行單元的結(jié)果不同所導(dǎo)致,例如當(dāng)使用assertEquals()或其它assertXXX()方法斷言失敗時(shí),會(huì)回報(bào)Failure,這時(shí)候要檢查你的單元方法中的邏輯設(shè)計(jì)是否有誤。
  Error指的是你的程序沒(méi)有考慮到的情況,在斷言之前程序因?yàn)槟撤N錯(cuò)誤引發(fā)例外而終止,例如在單元中存取某個(gè)數(shù)組,因?yàn)榇嫒〕鏊饕l(fā)ArrayIndexOutOfBoundsException,這會(huì)使得單元方法無(wú)法正確完成,在測(cè)試運(yùn)行到asertXXXX()前提前結(jié)束,這時(shí)候要檢查你的單元方法中是否有未考慮到的情況而引發(fā)流程突然中斷。
  JUnit的各種斷言
  JUnit提供了一些輔助函數(shù),用于幫助你確定某個(gè)被測(cè)試函數(shù)是否工作正常。通常而言,我們把所有這些函數(shù)統(tǒng)稱(chēng)為斷言。斷言是單元測(cè)試基本的組成部分。
  1.assertEquals([String message],expected,actual)
  比較兩個(gè)基本類(lèi)型或?qū)ο笫欠裣嗟?expected和actual是原始類(lèi)型數(shù)值(primitive value)或者必須為實(shí)現(xiàn)比較而具有equal方法);
  2.assertFalse([String message],boolean condition)
  對(duì)布爾值求值,看它是否為“真“;
  3.assertTrue([String message],boolean condition)
  對(duì)布爾值求值,看它是否為“假“;
  4.assertNull([String message],java.lang.Object object)
  檢查對(duì)象是否為“空“;
  5.assertNotNull([String message],java.lang.Object object)
  檢查對(duì)象是否不為“空”;
  6.assertSame([String message],expected,actual)
  檢查兩個(gè)對(duì)象是否為同一實(shí)例;
  7.assertNotSame([String message],expected,actual)
  檢查兩個(gè)對(duì)象是否不為同一實(shí)例;
  8.fail(String message)
  使測(cè)試立即失敗,其中message參數(shù)使可選的。這種斷言通常被用于標(biāo)記某個(gè)不應(yīng)該到達(dá)的分支(例如,在一個(gè)預(yù)期發(fā)生的異常之后)。

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