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

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

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

    想飛就別怕摔

    大爺?shù)牟M罵人

    Junit簡單例子

    本例是加減乘除計算
    先看一個簡單的類Calculator.java:
     1package com.test.junit;
     2/**
     3 * 
     4 * 數(shù)學(xué)計算
     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("除數(shù)不能為零");
    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}

    下面我們看看傳統(tǒng)的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)無方法參數(shù)
    18     * 4)最重要的方法名稱必須以test開頭
    19     */

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

    26    
    27    //在執(zhí)行每個test之后,都要執(zhí)行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);正常執(zhí)行;如果進入到catch中說明失敗;
    62            //所以我們加上fail。
    63            Assert.fail();//如果這行沒有執(zhí)行。說明這部分正確。
    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);已經(jīng)拋出異常,之后的代碼不會被執(zhí)行。
    76            //我們也期望是這樣的。所以說如果下面的Assert.fail();執(zhí)行了。
    77            //我的的測試就失敗了。
    78            Assert.fail();//當(dāng)執(zhí)行到這里測試失敗,后面的代碼將不被執(zhí)行。
    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("除數(shù)不能為零", tx.getMessage());
    85    }

    86}

    本例中只有一個測試類。不過在開發(fā)過程中隨著項目的壯大,測試類也會越來越多。我們總不能每次測試都去挨個的執(zhí)行每個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 生命的綻放 閱讀(5331) 評論(1)  編輯  收藏 所屬分類: JUnit

    評論

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

    共 產(chǎn) 黨  回復(fù)  更多評論   


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


    網(wǎng)站導(dǎo)航:
     
    <2012年7月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(5)

    隨筆分類(94)

    隨筆檔案(93)

    文章分類(5)

    文章檔案(5)

    相冊

    JAVA之橋

    SQL之音

    兄弟之窗

    常用工具下載

    積分與排名

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 午夜不卡久久精品无码免费| 亚洲高清在线播放| 国产h视频在线观看免费| 中国好声音第二季免费播放| 激情婷婷成人亚洲综合| 亚洲精品午夜视频| 婷婷亚洲综合五月天小说| 国产偷国产偷亚洲高清日韩| 日本免费中文字幕在线看| 麻豆最新国产剧情AV原创免费| 久久香蕉国产线看免费| 美女巨胸喷奶水视频www免费| 羞羞的视频在线免费观看| 亚洲熟妇AV一区二区三区浪潮 | 成人嫩草影院免费观看| 亚洲国产欧美日韩精品一区二区三区| 91午夜精品亚洲一区二区三区| 亚洲gv白嫩小受在线观看| 亚洲码国产精品高潮在线| 亚洲香蕉网久久综合影视 | caoporm碰最新免费公开视频| 亚洲AV日韩AV一区二区三曲| 亚洲午夜精品久久久久久app| 亚洲伊人久久大香线蕉结合| 亚洲成人动漫在线观看| 亚洲第一成年网站大全亚洲| 91精品国产亚洲爽啪在线影院| 午夜亚洲国产理论秋霞| 久久久亚洲精品视频| 亚洲va久久久噜噜噜久久天堂| 国产亚洲情侣一区二区无码AV | 人妻仑刮八A级毛片免费看| 337p日本欧洲亚洲大胆人人| 亚洲成在人线在线播放无码| 亚洲成av人片在www鸭子| 亚洲精品乱码久久久久久蜜桃图片| 亚洲中文字幕无码久久| 亚洲aⅴ无码专区在线观看春色| 亚洲av成人片在线观看| 男女猛烈激情xx00免费视频| 国产特黄特色的大片观看免费视频|