亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
循序漸進學習JUnit
作者:網絡轉載 發布時間:[ 2012/11/29 14:45:03 ] 推薦標簽:

為了測試這一編譯文件,你需要建立名字為src、tmp和lib的目錄。將junit.jar庫放到lib目錄中,并將前面看到的示例Java源文件放到src目錄中。打開終端,進入該工程的根目錄,并輸入ant,其結果為:

$ ant
Buildfile: build.xml

clean:
   [delete] Deleting directory
     /Users/casa/doc/oracle

     /junit/prj/tmp
   [mkdir] Created dir: /Users/casa
     /doc/oracle/junit/prj/tmp

bin:
    [javac] Compiling 4 source files
      to /Users/casa/doc/oracle
      /junit/prj/tmp


test:
    [junit] Running IsoDateTest
    [junit] Tests run: 1, Failures:
      0, Errors: 0, Time elapsed:
           0,005 sec
    [junit] Running IsoDateTest2
    [junit] Tests run: 2, Failures: 0,
      Errors: 0, Time elapsed: 0,031 sec
    [junit] Output:
    [junit] setUp()

    [junit] testIsoDate()
    [junit] tearDown()
    [junit] setUp()
    [junit] testToString()
    [junit] tearDown()

all:

BUILD SUCCESSFUL
Total time: 8 seconds
 

Ant還可以生成非常有用的HTML格式的測試報告。為了生成這樣的報告,將前面的測試目標用以下目標代替:

<target name="test" depends="bin"
       description="Run JUnit tests">
  <junit haltonfailure="false"
        printsummary="withOutAndErr">
    <classpath refid="cp"/>
    <batchtest todir="${tmp}">
      <fileset dir="${src}"
              includes="**/*Test*.java"/>
     </batchtest>

     <formatter type="xml"/>
  </junit>
  <junitreport todir="${tmp}">
    <fileset dir="${tmp}"
            includes="TEST-*.xml"/>
    <report format="frames"
           todir="${tmp}"/>
  </junitreport>
</target>
 

這一目標與前面的目標相同,只是該目標在batchtext元素中增加了一個新的屬性--todir,它告訴Ant在tmp目錄中生成可擴展的標記語言(XML)報告。該目標還增加了一個新的junitreport元素,以便由XML文件生成一個HTML報告。這一元素要求在安裝Ant的lib目錄中安裝Xalan庫(詳細內容見Ant文檔的junitreport部分:ant.apache.org/manual/install.html)。這一元素還定義了使用todir屬性生成的文件的目標目錄。通過嵌套一個fileset元素來定義為生成這一報告而需要處理的XML文件。期望的輸出格式利用嵌套的報告元素來實現。該對象將生成一個諸如圖4所示的報告。

這類報告在使單元測試自動運行時特別有用(比如在夜間編譯期間)。在這些情況下,錯誤或失敗不會中斷測試,因此你必須將前面提到的junit任務的haltonfailure和haltonerror屬性設置為"假"。這一報告對于衡量實施進程也非常有用(比如當你必須重寫已有代碼時,或者在實施之前已經編寫了測試的情況下)。

Ant對啟動JUnit圖形運行器也非常有用。下面的對象將會啟動Swing測試運行器:

<target name="testui" depends="bin"
        description="Run graphical JUnit">
<java classname="junit.swingui.TestRunner"
      classpathref="cp"
      fork="true"/>
</target>
 

你應當在終端中運行這一對象,并且在另一個終端或你喜歡的IDE中使用Ant對其進行編譯。這種方式使你不必在每次想要測試代碼時都啟動圖形運行器。

在Oracle9i Jdeveloper中的JUnit集成

Oracle9i JDeveloper并沒有基于網絡集成JUnit,但是下載并安裝這一插件只需要幾分鐘的時間。為了完成此過程,選擇JDeveloper的"Help"菜單下的"Check for Updates"項。這樣將會打開IDE更新向導,以連接到Oracle技術網站,下載該插件并安裝它。當安裝該插件后,需要關閉并重啟Oracle9i JDeveloper。注意,向導還會下載相關的文檔。

通過為每個任務提供向導,這個插件極大地提高了開發人員編寫測試實例、測試包和fixture等的工作效率。要調用這些向導,點擊"File"菜單下的"New"項,然后選擇"General/Unit Tests"類,并從右側的窗體中選擇合適的向導。你也可以從界面上啟動測試套件。

當準備好對項目進行代碼測試后,應當首先使用專用向導來編寫fixture,然后測試實例向導可以利用它們集成到測試實例中。另外,還有一些用來生成自定義測試fixture的向導以及生成商務組件和數據庫連接測試fixture的向導。這后兩種向導生成專用代碼,以使用setUp()和tearDown()方法設置和發布商務組件或數據庫連接。

當完成fixture后,下一步應當使用合適的向導來生成測試實例,這些向導可以讓你選擇要測試的類和方法。你還可以選擇在這個測試中使用的fixture。這將生成一個使用測試方法的主體完成的代碼框架。后應當生成套件來運行你的測試。這個專用向導讓你選擇要包括在套件中的測試,并為你生成整個類。要啟動一個測試套件,點擊瀏覽器中的文件,并選擇Run。這將會啟動圖形界面并運行套件的測試。

在"Help"菜單中選擇"Help Topics",你將會在JDeveloper文檔中找到關于如何使用這些向導的詳細教程。這會打開幫助系統窗口。點擊"Unit Testing with JUnit"項,然后選擇合適的教程。

JUnit和JDeveloper之間的這種集成使你能夠只編寫單元測試中你感興趣的那部分的代碼,而讓工具為你編寫重復的代碼。
下一步

訪問JUnit網站
www.junit.org

下載
Oracle9i Jdeveloper
otn.oracle.com/software/products/jdev/

Oracle9i應用服務器
otn.oracle.com/software/products/ias/

學習Oracle9i JDeveloper擴展
otn.oracle.com/products/jdev/htdocs/partners/addins

閱讀Oracle9i JDeveloper文檔
otn.oracle.com/docs/products/jdev/

JUnit佳實踐

下面是一些在使用JUnit時應當注意的技巧:

    在實施之前編寫測試代碼。這是一種合同驅動的實施方式。
    只測試那些可能會中斷的方法(也是說,在多數情況下不應測試setter和getter方法)。要盡可能地多進行測試,以避免回歸測試。當測試一個較大的應用程序時,你可以在夜間編譯時運行所有測試。
    一定要使用正確的JUnit擴展來測試特殊的應用程序(如使用Castus測試J2EE應用程序)。

值得花費的時間

到現在,你應當已經清楚地知道使用JUnit框架和合適的工具實施單元測試是多么快速而簡單。關于單元測試的下一個目標是使你的CTO相信你在實施測試時所必須花費的時間是為了以后節省更多的時間。但是,當你考慮在檢查老代碼、修正錯誤和發布一個調試過的版本上所花費的時間(它可能花費整個)時,在開發過程的早期階段捕獲的代碼錯誤毫無疑問是一項很好的投資。這里并沒有考慮當錯誤代碼不再位于塊的頂部時開發人員必須遵循的"black magic"步驟,這些步驟包括:標記代碼,制作一個分支、修正代碼錯誤、進行發布,以及將代碼修正合并到塊中。所有這些步驟都非常耗時,并且容易產生錯誤。

要開始使用單元測試和JUnit,請訪問JUnit網站:www.junit.org。你將找到大量有用的文檔(包括使用JUnit實施測試的詳細說明書)、一個與JUnit集成的IDE列表,以及關于JUnit擴展工具的詳細內容。

Michel Casabianca ( casa@sweetohm.net)是In-Fusio(一家為移動用戶提供游戲服務的法國公司)的一名軟件工程師,同時也是XML Pocket Reference(O'Reilly出版,2001年)一書的合著者。

表1:編寫測試實例中所使用的判定方法

assertEquals(期望原型,實際原型)  檢查兩個原型是否相等
assertEquals(期望對象,實際對象)  利用對象的equals()方法檢查兩個對象是否相等
assertSame(期望對象,實際對象)  檢查具有相同內存地址的兩個對象是否相等
assertNotSame(期望對象,實際對象)  檢查具有不同內存地址的兩個對象是否不相等
assertNull(對象 對象)  檢查一個對象是否為空
assertNotNull(對象 對象)  檢查一個對象是否為非空
assertTrue(布爾條件)  檢查條件是否為真
assertFalse(布爾條件)  檢查條件是否為假

上一頁12345下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 欧美综合区自拍亚洲综合图区 | 黄色影片在线看 | 国产欧美亚洲精品 | 成人1234| 最新精品亚洲成a人在线观看 | 中文字幕一区二区三区精品 | 欧美日韩一区二区不卡 | 久久国产午夜精品理论篇小说 | 国产视频三区 | 色喔喔| 亚洲成在人天堂在线 | 琪琪色在线视频 | 欧美色欧美亚洲另类二区精品 | 本道综合 | 久久精品免看国产 | 欧美日韩精 | 欧美福利片在线观看 | 在线免费看片网站 | 日本久久久久久久中文字幕 | 高清潢色大片 | 国产成人小视频在线观看 | 在线观看一区二区三区视频 | 久久精品国产清白在天天线 | 最近免费2019中文字幕大全 | 1717she精品国产真正免费 | 羞羞视频成人 | 日韩一级影院 | 手机看片国产精品 | 神马啪啪 | 日本黄色大片免费观看 | 久草视频免费 | 国产精品亚洲精品日韩已满 | 九九热香蕉视频 | 午夜视频一区二区三区 | 欧美日韩视频一区二区在线观看 | 免费一级a毛片在线搐放正片 | 妞干网欧美 | 丝袜美腿在线 | 毛片在线观看网站 | 成人国产精品视频频 | 久久99综合国产精品亚洲首页 |