<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 生命的綻放 閱讀(5333) 評論(1)  編輯  收藏 所屬分類: JUnit

    評論

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

    共 產 黨  回復  更多評論   


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


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

    導航

    統計

    常用鏈接

    留言簿(5)

    隨筆分類(94)

    隨筆檔案(93)

    文章分類(5)

    文章檔案(5)

    相冊

    JAVA之橋

    SQL之音

    兄弟之窗

    常用工具下載

    積分與排名

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 国产成A人亚洲精V品无码| 亚洲精品无码99在线观看| 久久亚洲精精品中文字幕| 日本免费久久久久久久网站| 亚洲精品国产日韩无码AV永久免费网| 日韩亚洲人成在线综合| 国产成人免费全部网站| 香港特级三A毛片免费观看| 免费日本黄色网址| 成人免费网站久久久| 亚洲中久无码不卡永久在线观看| 一级毛片aa高清免费观看| 亚洲人妻av伦理| 高清永久免费观看| 久久久久亚洲精品无码蜜桃 | 视频一区二区三区免费观看| 国产成人高清精品免费鸭子| 国产亚洲成在线播放va| 亚洲午夜AV无码专区在线播放| 国产精品九九久久免费视频| 日韩亚洲人成在线综合日本| 在线看片免费人成视频播| 久久久久亚洲AV无码专区首JN| 又黄又爽又成人免费视频| 亚洲国产精品久久久久秋霞小| 免费人成网站在线播放| 永久免费av无码入口国语片| 亚洲成A∨人片在线观看无码| 处破痛哭A√18成年片免费| www在线观看免费视频| 亚洲伊人久久大香线蕉苏妲己| 国产v精品成人免费视频400条| 青青青视频免费观看| 亚洲av无码无在线观看红杏| 天天看免费高清影视| 一区二区三区免费高清视频| 亚洲精品美女在线观看播放| 国产美女a做受大片免费| 久久这里只精品99re免费| 亚洲色大成WWW亚洲女子| 亚洲精品美女久久777777|