您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
《Junit in Action》學(xué)習(xí)筆記
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/2/26 14:21:04 ] 推薦標簽:

1.Junit概述:

    ①Junit測試是程序員測試,即所謂白盒測試,因為程序員知道被測試的軟件如何(How)完成功能和完成什么樣(What)的功能。
    ②Junit測試是自動化測試的一種方式,它使得bug容易被控制。
    ③Junit本質(zhì)上是一套框架,即開發(fā)者制定了一套條條框框,遵循這此條條框框要求編寫測試代碼,如繼承某個類,實現(xiàn)某個接口,可以用Junit進行自動測試了。
    ④由于Junit相對獨立于所編寫的代碼,可以測試代碼的編寫可以先于實現(xiàn)代碼的編寫,XP 中推崇的 test first design的實現(xiàn)有了現(xiàn)成的手段:用Junit寫測試代碼,寫實現(xiàn)代碼,運行測試,測試失敗(狀態(tài)條為:紅色),修改實現(xiàn)代碼,再運行測試,直到測試成功(狀態(tài)條為:綠色)。以后對代碼的修改和優(yōu)化,運行測試成功,則修改成功。

2.Junit 相關(guān)使用

   ①概念:
    |- TestCase(測試用例)--擴展Junit的TestCase類的類。它以testXXX方法的形式包含一個或多個測試。一個testcase把具有公共行為的測試歸入一組。

    |- TestSuite(測試集合)--組測試。一個test suite是吧多個相關(guān)測試歸入一組的快捷方式。例如,如果沒有為TestCase 定義一個test suite,那么Junit會自動提供一個test suite。包含TestCase中所有測試。

    |- TestRunner(測試運行器)--執(zhí)行test suite的程序。Junit提供了幾個test runner,可以用來執(zhí)行你的測試。 沒有TestRunner解開,只有一個所偶test runner都繼承的BaseTestRunner. 因此,當我們編寫TestRunner的時候,實際上指的是任何繼承BaseTestRunner的test runner類。

    ②Junit成員共同產(chǎn)生測試結(jié)果:
        TestCase + TestSuite + BaseTestRunner =  TestResult

   ③JUnit基本框架的結(jié)構(gòu)
       |- import聲明引入必須的JUnit類
       |- 定義一個測試類從TestCase繼承
       |- 必需一個調(diào)用super(String)的構(gòu)造函數(shù)
       |- 測試類包含一些以test..開頭的測試方法
       |- 每個方法包含一個或者多個斷言語句
     當然還有一些其他的內(nèi)容,但滿足以上幾條的已經(jīng)是一個JUnit測試了

   ④JUnit的命名規(guī)則和習(xí)慣
       |- 如果有一個名為ClassA的被測試函數(shù),那么測試類的名稱是TestClassA
      |- 如果有一個名為methodA的被測試函數(shù),那么測試函數(shù)的名稱是testMethodA


   ⑤介紹Test Case、test suite、Test Runner常規(guī)使用: (使用的Eclipse自帶的Junit)。
       |-Test Case
Java代碼 復(fù)制代碼

    import junit.framework.*;  //導(dǎo)入junit.jar包  
      /*TestXxx繼承自TestCase(命名規(guī)范:一般在類名前加Test)*/ 
      public class TestXxx extends TestCase{     
     /*測試方法的具體實現(xiàn)(命名規(guī)范:以小寫的testXxx形式。否則Junt不會自動識別該方法為測試方法)*/ 
     public void testXxx(){};   
      } 

[java] view plaincopy

    import junit.framework.*;  //導(dǎo)入junit.jar包 
      /*TestXxx繼承自TestCase(命名規(guī)范:一般在類名前加Test)*/ 
      public class TestXxx extends TestCase{    
     /*測試方法的具體實現(xiàn)(命名規(guī)范:以小寫的testXxx形式。否則Junt不會自動識別該方法為測試方法)*/ 
     public void testXxx(){};  
      } 


             
       |-test suite
Java代碼 復(fù)制代碼

    import junit.framework.Test;  
    public static Test suite(){  
       TestSuite suite = new TestSuite();   //實例化  
         suite.addTest(new MoneyTest("testXxx"));  //添加測試方法  
         suite.addTestSuite(TestMoney.class);  //添加整個測試到集合中  
     } 

[java] view plaincopy

    import junit.framework.Test; 
    public static Test suite(){ 
       TestSuite suite = new TestSuite();   //實例化 
         suite.addTest(new MoneyTest("testXxx"));  //添加測試方法 
         suite.addTestSuite(TestMoney.class);  //添加整個測試到集合中 
     } 


          
       |- Test Runner (junit.textui.TestRunner)
Java代碼 復(fù)制代碼

    public static void main(String args[]){  
      junit.textui.TestRunner.run(suite()); //將testsuite 執(zhí)行。  
     } 

[java] view plaincopy

    public static void main(String args[]){ 
      junit.textui.TestRunner.run(suite()); //將testsuite 執(zhí)行。 
     } 

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