<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    想飛就別怕摔

    大爺的并TM罵人

    Junit簡單例子

    本例是加減乘除計算
    先看一個簡單的類Calculator.java:
     1package com.test.junit;
     2/**
     3 * 
     4 * 數學計算
     5 *
     6 */

     7public class Calculator {
     8    public int add(int a,int b){
     9        return a + b;
    10    }

    11    public int minus(int a,int b){
    12        return a - b;
    13    }

    14    public int multiply(int a, int b ){
    15        return a * b;
    16    }

    17    public int divide(int a , int b )throws Exception
    18    {
    19        if(0 == b){
    20            throw new Exception("除數不能為零");
    21        }

    22        return a / b;
    23    }

    24/*    
    25 * 一下是不用IDE給我們提供的Junit,用Junit本身去測試的3個方法。
    26    public static void main (String[]args){
    27        junit.textui.TestRunner.run(CalculatorTest.class);
    28        junit.swingui.TestRunner.run(CalculatorTest.class);
    29        junit.awtui.TestRunner.run(CalculatorTest.class);
    30    }
    31*/

    32}

    下面我們看看傳統的JUnit的TestCase:
    CalculatorTest.java:
     1package com.test.junit;
     2
     3import junit.framework.Assert;
     4import junit.framework.TestCase;
     5/**
     6 * Keep the bar green to keep the code clean
     7 * 
     8 *在Junit3.8中必須繼承TestCase類
     9 *
    10 *單元測試不是證明您是對的,而是證明您沒有錯
    11 */

    12public class CalculatorTest extends TestCase {
    13    /**
    14     * 在Junit3.8中,測試方法滿足如下原則
    15     * 1)public
    16     * 2)void 
    17     * 3)無方法參數
    18     * 4)最重要的方法名稱必須以test開頭
    19     */

    20    private Calculator cal;
    21    
    22    //在執行每個test之前,都執行setUp;
    23    public void setUp(){
    24         cal = new Calculator();
    25    }

    26    
    27    //在執行每個test之后,都要執行tearDown
    28    public void tearDown(){
    29    }

    30
    31    public void testAdd()
    32    {
    33//        Calculator cal = new Calculator();
    34        int result = cal.add(12);
    35        //斷言assert
    36        Assert.assertEquals(3, result);
    37    }
     
    38    
    39    public void testMinus()
    40    {
    41//        Calculator cal = new Calculator();
    42        int result = cal.minus(52);
    43        Assert.assertEquals(3, result);
    44    }

    45    
    46    public void testMultiply()
    47    {
    48        Calculator cal = new Calculator();
    49        int result = cal.multiply(42);
    50        Assert.assertEquals(8,result);
    51    }

    52    
    53    public void testDivide()
    54    {
    55//        Calculator cal = new Calculator();
    56        int result = 0;
    57        try {
    58            result = cal.divide(10,5);
    59        }
     catch (Exception e) {
    60            e.printStackTrace();
    61            //我們期望result = cal.divide(10,5);正常執行;如果進入到catch中說明失敗;
    62            //所以我們加上fail。
    63            Assert.fail();//如果這行沒有執行。說明這部分正確。
    64        }

    65        Assert.assertEquals(2,result);
    66    }

    67    
    68    public void testDivide2()
    69    {
    70        Throwable tx = null
    71        try 
    72        {
    73//            Calculator cal = new Calculator();
    74            cal.divide(10,0);
    75            //正常來講cal.divide(10,0);已經拋出異常,之后的代碼不會被執行。
    76            //我們也期望是這樣的。所以說如果下面的Assert.fail();執行了。
    77            //我的的測試就失敗了。
    78            Assert.fail();//當執行到這里測試失敗,后面的代碼將不被執行。
    79        }
     catch (Exception e) {
    80            tx = e;
    81        }

    82        Assert.assertNotNull(tx);//斷言tx不為空。也就是說肯定有異常。
    83        Assert.assertEquals(Exception.class,tx.getClass());//斷言tx的類型為Exception類型
    84        Assert.assertEquals("除數不能為零", tx.getMessage());
    85    }

    86}

    本例中只有一個測試類。不過在開發過程中隨著項目的壯大,測試類也會越來越多。我們總不能每次測試都去挨個的執行每個test類吧。所以我們要寫個總體的test類:
    代碼如下:
     1package com.test.junit;
     2
     3import junit.framework.Test;
     4import junit.framework.TestCase;
     5import junit.framework.TestSuite;
     6
     7public class TestAll extends TestCase {
     8    public static Test suite()
     9    {
    10        TestSuite suite = new TestSuite();
    11         suite.addTestSuite(CalculatorTest.class);//加入你所想測試的測試類
    12         
    13         return suite;
    14    }

    15}

    posted on 2008-11-25 17:22 生命的綻放 閱讀(5334) 評論(1)  編輯  收藏 所屬分類: JUnit

    評論

    # re: Junit簡單例子[未登錄] 2012-07-14 09:32 啊啊

    共 產 黨  回復  更多評論   


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


    網站導航:
     
    <2008年11月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    導航

    統計

    常用鏈接

    留言簿(5)

    隨筆分類(94)

    隨筆檔案(93)

    文章分類(5)

    文章檔案(5)

    相冊

    JAVA之橋

    SQL之音

    兄弟之窗

    常用工具下載

    積分與排名

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 91精品免费国产高清在线| 日韩在线视频播放免费视频完整版| 久久精品国产亚洲av水果派| 久久国产亚洲观看| 亚洲AV永久无码精品水牛影视| 亚洲αv久久久噜噜噜噜噜| 亚洲短视频男人的影院| 久久亚洲国产成人亚| 亚洲午夜视频在线观看| 久久久久久亚洲精品成人| 亚洲精品视频在线免费| 亚洲一线产区二线产区精华| 亚洲一本之道高清乱码| 亚洲中文字幕无码久久| 在线视频亚洲一区| a级毛片免费高清视频| 国产在线播放线91免费| 久久精品私人影院免费看| 18禁男女爽爽爽午夜网站免费 | 日韩精品一区二区亚洲AV观看| 亚洲精品国产成人专区| 亚洲小视频在线播放| 亚洲熟女精品中文字幕| 老司机精品视频免费| 久久性生大片免费观看性| 久久久久国色av免费看| 久草视频在线免费| 在线日韩av永久免费观看| 亚洲精品和日本精品| 亚洲va久久久噜噜噜久久男同| 亚洲第一区视频在线观看| 亚洲精华液一二三产区| caoporm超免费公开视频| 99久久国产免费中文无字幕| 亚洲天堂免费在线| 大胆亚洲人体视频| 久久精品国产亚洲香蕉| 亚洲AV色吊丝无码| 欧洲精品码一区二区三区免费看| 免费91麻豆精品国产自产在线观看| 丁香花免费高清视频完整版|