工作小驛

          Ninja!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            103 Posts :: 0 Stories :: 36 Comments :: 0 Trackbacks
          一、JUnit簡介
            JUnit是基于面向對象構建的java單元測試框架。
            JUnit是開放源代碼項目,可按需要進行擴展。
           
           二、安裝JUnit
            首先獲取JUnit的軟件包,從http://www.junit.org下載最新的軟件包。
            將軟件包在適當的目錄下解包。
            這樣在安裝目錄下找到一個名為junit.jar的文件,將這個jar文件加入
           
           CLASSPATH系統變量。
           
           三、JUnit框架介紹:
           一)TestCase--測試用例,對每個測試類,都要定義一個測試用例。
           JUnit支持兩種運行單個測試的方法:靜態的和動態的方法。
           1、靜態的方法就是覆蓋TestCase類的runTest()方法,一般是采用內部類的方式
           
           創建一個測試實例:
           TestCase test01 = new testCar("test getWheels") {
            public void runTest() {
            testGetWheels();
            }
           }
           采用靜態的方法要注意要給每個測試一個名字,這樣你就可以區分哪個測試失敗
           
           了。
           
           2、動態的方法是用內省來實現runTest()以創建一個測試實例。這要求測試的名
           
           字就是需要調用的測試方法的名字:
           TestCase test01 = new testCar("testGetWheels");
           JUnit會動態查找并調用指定的測試方法。動態的方法很簡潔,但如果你鍵入了錯
           
           誤的名字就會得到一個令人奇怪的NoSuchMethodException異常。動態的方法和靜
           
           態的方法都很好,你可以按照自己的喜好來選擇。
           
           二)TestSuite
           一旦你創建了一些測試實例,下一步就是要讓他們能一起運行。我們必須定義一
           
           個TestSuite。在JUnit中,這就要求你在TestCase類中定義一個靜態的suite()方
           
           法。suite()方法就像main()方法一樣,JUnit用它來執行測試。在suite()方法中
           
           ,你將測試實例加到一個TestSuite對象中,并返回這個TestSuite對象。一個
           
           TestSuite對象可以運行一組測試。
           TestSuite和TestCase都實現了Test接口,而Test接口定義了運行測試所需的方法
           
           。這就允許你用TestCase和TestSuite的組合創建一個TestSuite。
           public static Test suite() {
            TestSuite suite= new TestSuite();
            suite.addTest(new testCar("testGetWheels"));
            suite.addTest(new testCar("testGetSeats"));
            return suite;
           }
           public static Test suite() {
            return new TestSuite(testCar.class);
           }
           
           三)TestRunner
           有了TestSuite我們就可以運行這些測試了,JUnit提供了三種界面來運行測試
           [Text UI] junit.textui.TestRunner
           [AWT UI] junit.awtui.TestRunner
           [Swing UI] junit.swingui.TestRunner
           java junit.textui.TestRunner yourTestclass
           
           Fixture
           如果需要在一個或若干個的類執行多個測試,這些類就成為了測試的context。在
           
           JUnit中被稱為Fixture。當你編寫測試代碼時,你會發現你花費了很多時間配置/
           
           初始化相關測試的Fixture。將配置Fixture的代碼放入測試類的構造方法中并不
           
           可取,因為我們要求執行多個測試,我并不希望某個測試的結果意外地(如果這
           
           是你要求的,那就另當別論了)影響其他測試的結果。通常若干個測試會使用相
           
           同的Fixture,而每個測試又各有自己需要改變的地方。
           為此,JUnit提供了兩個方法,定義在TestCase類中。
           
           protected void setUp() throws java.lang.Exception
           protected void tearDown() throws java.lang.Exception
           
           覆蓋setUp()方法,初始化所有測試的Fixture,如建立數據庫連接,將每個測試
           
           略有不同的地方在testXXX()方法中進行配置。
           覆蓋tearDown(),釋放你在setUp()中分配的永久性資源,如數據庫連接。
           當JUnit執行測試時,它在執行每個testXXXXX()方法前都調用setUp(),而在執行
           
           每個testXXXXX()方法后都調用tearDown()方法,由此保證了測試不會相互影響。
           
           四)Assert
           Assert類中定義了相當多的assert方法,主要有assert(),assertEquals(),
           
           assertNull(), assertSame(), assertTrue(), fail()等方法。
           
           Faile失敗是一個期望的被assert方法檢查到的結果。
           Error錯誤則是意外的問題引起的,如ArrayIndexOutOfBoundsException。
           
           
           四、測試流程:
           1. 擴展TestCase類;
           2. 覆蓋runTest()方法(可選);
           3. 對應測試目標類書寫testXXXXX()方法;
           4、擴展TestSuite類,重載suite()方法,實現自定義的測試過程;
           5. 運行TestRunner進行測試;
          http://www.chinaitlab.com/www/news/article_show.asp?id=24311
          posted on 2007-09-05 14:55 王君 閱讀(543) 評論(0)  編輯  收藏 所屬分類: JUnit

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 瑞金市| 闸北区| 云南省| 加查县| 中阳县| 临沂市| 社旗县| 衡南县| 安陆市| 绥宁县| 平顶山市| 沈丘县| 瑞安市| 博客| 监利县| 方山县| 会同县| 五台县| 咸宁市| 怀安县| 万安县| 武胜县| 赤峰市| 怀化市| 壤塘县| 罗甸县| 南和县| 张家口市| 新巴尔虎右旗| 郓城县| 柳江县| 宾阳县| 小金县| 临沧市| 大荔县| 长沙市| 阜阳市| 治多县| 宁远县| 新河县| 彭州市|