欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Junit使用簡(jiǎn)明手冊
在使用XP進(jìn)行開(kāi)發(fā)的過(guò)程,unit test是必不可少的環(huán)節。作為unit test,junit是首選的工具。本文從使用目的、如何使用、以及使用中需要考慮的問(wèn)題,簡(jiǎn)略描述了junit的基本用法。

使用目的

       junitjava中書(shū)寫(xiě)unit testframework,目前一些流行的unit test工具大都都是在junit上擴展而來(lái)的。目前它的版本是junit3.8.1,可以從www.junit.org上下載。

用法

1.       基本使用步驟,Junit的使用非常簡(jiǎn)單,它的基本使用步驟:

-          創(chuàng )建,從junit.framework.TestCase派生unit test需要的test case

-          書(shū)寫(xiě)測試方法,提供類(lèi)似于如下函數簽名的測試方法:

public void testXXXXX();

-          編譯,書(shū)寫(xiě)完test case后,編譯所寫(xiě)的test case類(lèi)

-          運行,啟動(dòng)junit test runner,來(lái)運行這個(gè)test case。

Junit提供了2個(gè)基本的test runner:字符界面和圖形界面。啟動(dòng)命令分別如下:

a 圖形界面:

java junit.swingui.TestRunner XXXXX

b 字符界面:

java junit.textui.TestRunner XXXXX

2.       使用例子:

import junit.frmework.TestCase;

public class TestSample extends TestCaset{

        public void testMethod1(){

               assertTrue( true);

}

}

3.       setUptearDown,這兩個(gè)函數是junit framework中提供初始化和反初始化每個(gè)測試方法的。setUp在每個(gè)測試方法調用前被調用,負責初始化測試方法所需要的測試環(huán)境;tearDown在每個(gè)測試方法被調用之后被調用,負責撤銷(xiāo)測試環(huán)境。它們與測試方法的關(guān)系可以描述如下:

 

     測試開(kāi)始 -> setUp -> testXXXX -> tearDown ->測試結束

 

4.       使用例子:

import junit.frmework.TestCase;

public class TestSample extends TestCaset{

        protected void setUp(){

               //初始化……

}

 

        public void testMethod1(){

               assertTrue( true);

}

 

potected void tearDown(){

       //撤銷(xiāo)初始化……

}

}

5.       區分fail、exception。

-          fail,期望出現的錯誤。產(chǎn)生原因:assert函數出錯(如assertFalse(true));fail函數產(chǎn)生(如fail(……))。

-          exception,不期望出現的錯誤,屬于unit test程序運行時(shí)拋出的異常。它和普通代碼運行過(guò)程中拋出的runtime異常屬于一種類(lèi)型。

對于assert、fail等函數請參見(jiàn)junitjavadoc。

6.       使用例子:

import junit.frmework.TestCase;

public class TestSample extends TestCaset{

        protected void setUp(){

               //初始化……

}

 

        public void testMethod1(){

               ……

               try{

                      boolean b= ……

                      assertTrue( b);

                      throw new Exception( “This is a test.”);

                      fail( “Unable point.”);     //不可能到達

               }catch(Exception e){

                      fail( “Yes, I catch u”); //應該到達點(diǎn)

}

……

}

 

potected void tearDown(){

       //撤銷(xiāo)初始化……

}

}

7.       組裝TestSuite,運行更多的test。在junit中,Test、TestCaseTestSuite三者組成了composiste pattern。通過(guò)組裝自己的TestSuite,可以完成對添加到這個(gè)TestSuite中的所有的TestCase的調用。而且這些定義的TestSuite還可以組裝成更大的TestSuite,這樣同時(shí)也方便了對于不斷增加的TestCase的管理和維護。

       它的另一個(gè)好處就是,可以從這個(gè)TestCase樹(shù)的任意一個(gè)節點(diǎn)(TestSuiteTestCase)開(kāi)始調用,來(lái)完成這個(gè)節點(diǎn)以下的所有TestCase的調用。提高了unit test的靈活性。

8.       使用例子:

import junit.framework.Test;

import junit.framework.TestSuite;

public class TestAll{

public class TestAll{

        //定義一個(gè)suite,對于junit的作用可以視為類(lèi)似于java應用程序的main。

    public static Test suite(){

        TestSuite suite = new TestSuite("Running all tests.");

        suite.addTestSuite( TestCase1.class);

        suite.addTestSuite( TestCase2.class);

        return suite;

    }

}

運行同運行單獨的一個(gè)TestCase是一樣的,參見(jiàn)step 1 “運行”。

9.       使用Ant junit task。我們除了使用java來(lái)直接運行junit之外,我們還可以使用junit提供的junit taskant結合來(lái)運行。涉及的幾個(gè)主要的ant task如下:

-          <junit>,定義一個(gè)junit task

-          <batchtest>,位于<junit>中,運行多個(gè)TestCase

-          <test>,位于<junit>中,運行單個(gè)TestCase

-          <formatter>,位于<junit>中,定義一個(gè)測試結果輸出格式

-          <junitreport>,定義一個(gè)junitreport task

-          <report>,位于<junitreport>中,輸出一個(gè)junit report

具體的語(yǔ)法請參見(jiàn)相關(guān)文檔。

10.   使用例子:

<junit printsummary="yes" haltonfailure="no">

    <classpath>

        <path refid="classpath"/>

        <pathelement location="${dist.junit}"/>

    </classpath>

   

    <formatter type="brief" usefile="false"/>

    <formatter type="xml"/>

 

    <batchtest todir="${doc.junitReport}">

        <fileset dir="${dist.junit}" includes="**/*Test.class" />

    </batchtest>

</junit>

 

<junitreport todir="${doc.junitReport}">

    <fileset dir="${doc.junitReport}">

        <include name="TEST*-*.xml"/>

    </fileset>

    <report format="frames" styledir="${junit.styleDir}" todir="${doc.junitReport}"/>

</junitreport>

檢查表

       junit的使用并不很難,然而要書(shū)寫(xiě)一個(gè)好的TestCase卻并非易事。一個(gè)不好的TestCase往往是既浪費了時(shí)間,也起不了實(shí)際的作用。相反,一個(gè)好的TestCase,不僅可以很好的指出代碼中存在的問(wèn)題,而且也可以作為代碼更準確的文檔,同時(shí)還在持續集成的過(guò)程中起非常重要的作用。在此給出書(shū)寫(xiě)TestCase時(shí)需要注意的幾點(diǎn):

-          測試的獨立性:一次只測試一個(gè)對象,方便定位出錯的位置。這有2層意思:一個(gè)TestCase,只測試一個(gè)對象;一個(gè)TestMethod,只測試這個(gè)對象中的一個(gè)方法。

-          給測試方法一個(gè)合適的名字。

-          assert函數中給出失敗的原因,如:assertTrue( “… should be true”,  ……),方便查錯。在這個(gè)例子中,如果無(wú)法通過(guò)assertTrue,那么給出的消息將被顯示。在junit中每個(gè)assert函數都有第一個(gè)參數是出錯時(shí)顯示消息的函數原型。

-          測試所有可能引起失敗的地方,如:一個(gè)類(lèi)中頻繁改動(dòng)的函數。對于那些僅僅只含有getter/setter的類(lèi),如果是由IDE(如Eclipse)產(chǎn)生的,則可不測;如果是人工寫(xiě),那么最好測試一下。

-          setUptearDown中的代碼不應該是與測試方法相關(guān)的,而應該是全局相關(guān)的。如針對與測試方法AB,在setUptearDown中的代碼應該是AB都需要的代碼。

-          測試代碼的組織:相同的包,不同的目錄。這樣,測試代碼可以訪(fǎng)問(wèn)被測試類(lèi)的protected變量/方法,方便測試代碼的編寫(xiě)。放在不同的目錄,則方便了測試代碼的管理以及代碼的打包和發(fā)布。一個(gè)例子如下:

src   <=源代碼根目錄

 |---com

     |---mod1

         |---class1

junit   <=測試代碼根目錄

 |---com

     |---mod1

         |---class1

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
JUnit之TestCase和TestSuite詳解
Test::Unit – Ruby單元測試框架
unittest單元測試框架總結
junit概況說(shuō)明
netbeans 中使用Junit
JUnit Gossip: TestSuite
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久