亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Junit學習

2019-11-14 15:25:07
字體:
來源:轉載
供稿:網友

一. 斷言核心方法

360截圖-6668262

示例代碼:

package com.test;import org.junit.Assert;import org.junit.Test;/*** @Title: testAssert.java * @Package com.test * @Description: junit中常見的斷言* @author lky * @date 2015年10月17日 上午9:15:59 * @version V1.0 */public class testAssert {        /**    * @Title: testAssertByteArrayEqual     * @Description: 判斷字節數組是否相等      */    @Test    public void testAssertByteArrayEqual(){        Assert.assertArrayEquals("byteArray fail to equal ", "lky".getBytes(),"lky".getBytes());    }        /**    * @Title: testAssertEqual     * @Description: 判斷兩個對象是否相等,只比較值,不比較它們的地址,類似于java中的equal的比較     */    @Test    public void testAssertEqual(){        Assert.assertEquals("fail to equql", 50,50);    }        @Test    public void testAssertNotEqual(){        Assert.assertNotEquals("should be not equal",50,49);    }        /**    * @Title: testAssertNotNull     * @Description: 判斷一個對象是否為空     */    @Test    public void testAssertNotNull(){        Assert.assertNotNull("should be not null", new Object());    }        @Test    public void testAssertNull(){        Assert.assertNull("should be null", null);    }        /**    * @Title: testAssertSame     * @Description: 判斷兩個對象是否相等,包括值和地址,類似于java中的=     */    @Test    public void testAssertSame(){        Integer number=Integer.valueOf(10);        Assert.assertSame("should be same",number ,number);    }    @Test    public void testAssertNotSame(){        Assert.assertNotSame("should be not same", new Object(), new Object());    }}

二.注解核心方法

360截圖-6719212

  • 執行順序

一個測試類單元測試的執行順序為:

@BeforeClass –> @Before –> @Test –> @After –> @AfterClass

  • 每一個測試方法的調用順序為:

@Before –> @Test –> @After

示例代碼:

package com.test;import org.junit.After;import org.junit.AfterClass;import org.junit.Assert;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Ignore;import org.junit.Test;/*** @Title: testAnnotation.java * @Package com.test * @Description: junit測試中注解測試* @author lky * @date 2015年10月17日 上午9:36:39 * @version V1.0 */public class testAnnotation {    PRivate static Demo demo=null;        /**    * @Title: testBeforeClass     * @Description: 在該類加載時運行,有且僅僅執行一次     */    @BeforeClass    public static void testBeforeClass(){        demo=new Demo();        System.out.println("Test --------->testBeforeClass");    }        /**    * @Title: testBefore     * @Description: 在每一個測試執行前,自動被調用     */    @Before    public void testBefore(){        System.out.println("Test---------->testBefore");    }        /**    * @Title: testAdd     * @Description: 真正去做測試的代碼     */    @Test    public void testAdd(){        Assert.assertEquals(5, demo.add(2, 3));    }        /**    * @Title: testAdd1     * @Description: ignore表示忽略該測試     */    @Ignore    @Test    public void testAdd1(){         Assert.assertEquals(4, demo.add(2, 2));    }        /**    * @Title: testAfter     * @Description: 每一個測試執行結束后會被調用     */    @After    public void testAfter(){        System.out.println("Test----------->testAfter");    }        /**    * @Title: testAfterClass     * @Description: 所有測試執行結束以后,執行(有且執行一次)     */    @AfterClass    public static void testAfterClass(){        System.out.println("Test------------>testAfterClass");    }}

三.參數化測試

     有時一個測試方法,不同的參數值會產生不同的結果,那么我們為了測試全面,會把多個參數值都寫出來并一一斷言測試,這樣有時難免費時費力,這是我們便可以采用參數化測試來解決這個問題。參數化測試就好比把一個“輸入值,期望值”的集合傳入給測試方法,達到一次性測試的目的。

示例代碼:

package com.test;public class Demo {        public int add(int a,int b){        return a+b;    }}
package com.test;import java.util.Arrays;import java.util.Collection;import org.junit.Assert;import org.junit.BeforeClass;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.Parameterized;import org.junit.runners.Parameterized.Parameters;/*** @Title: testParam.java * @Package com.test * @Description: 多組數據的單元測試(參數化測試)* @author lky * @date 2015年10月17日 上午9:20:54 * @version V1.0 *///不使用junit默認的運行器,指定特定的運行器@RunWith(Parameterized.class)public class testParam {    private int expected;    private int input1;    private int input2;    private static  Demo demo;        public testParam(int expected,int input1,int input2) {        this.expected=expected;        this.input1=input1;        this.input2=input2;    }        /**    * @Title: initData     * @Description: 測試數據初始化    * @param @return    設定文件     * @return Collection<? extends Object>    返回類型     * @throws     */    @Parameters(name="第 {index} 組:-------> {1} + {2} = {0}")    public static Collection<?extends Object> initData(){        return Arrays.asList(new Object [][]{{3,2,1},{5,-1,6},{-7,-3,-4},{7,3,4}});    }        @BeforeClass    public static void loadUp(){        demo=new Demo();    }        @Test    public void testAdd(){        Assert.assertEquals("should be equal", this.expected, demo.add(this.input1, this.input2));    }}

四.異常測試

示例代碼:

package com.test;import java.util.ArrayList;import java.util.List;import org.junit.Assert;import org.junit.Rule;import org.junit.Test;import org.junit.rules.ExpectedException;/** * * @Title: testException.java * @Package com.test * @Description: 異常測試(兩種方法)* @author lky * @date 2015年10月17日 上午10:00:32 * @version V1.0 */public class testException {        @Test(expected=IndexOutOfBoundsException.class)    public void empty(){        new ArrayList<Object>().get(0);    }            @Rule    public ExpectedException thrown=ExpectedException.none();        @Test      public void shouldTestExceptionMessage() throws IndexOutOfBoundsException {          List<?extends Object> list=new ArrayList<Object>();        thrown.expectMessage("Index: 0, Size: 0");        thrown.expect(IndexOutOfBoundsException.class);        list.get(0);        Assert.assertEquals(1, list.get(0));    }                  }

五.超時測試

         有時為了防止出現死循環或者方法執行過長(或檢查方法效率),而需要使用到限時測試。顧名思義,就是超出設定時間即視為測試失敗。共有兩種寫法

示例代碼:

package com.test;import org.junit.Rule;import org.junit.Test;import org.junit.rules.Timeout;/*** @Title: testTimeOut.java * @Package com.test * @Description: 超時測試* @author lky * @date 2015年10月17日 上午9:58:18 * @version V1.0 */public class testTimeOut {        //定義被測試方法的時間參數,    @Rule    public Timeout timeout=new Timeout(10000);    @Test    public void test(){                    }        @Test(timeout=10000)    public void test1(){                    }}

六.打包測試

       如果一個項目中有很多個測試用例,如果一個個測試也很麻煩,因此打包測試就是一次性測試完成包中含有的所有測試用例

示例代碼:

package com.test;import org.junit.runner.RunWith;import org.junit.runners.Suite;import org.junit.runners.Suite.SuiteClasses;/*** @Title: testSuite.java * @Package com.test * @Description: 打包測試* @author lky * @date 2015年10月17日 上午10:05:25 * @version V1.0 */@RunWith(Suite.class)@SuiteClasses({testAnnotation.class,testAssert.class,testParam.class,testException.class,testTimeOut.class})public class testSuite {}

七.Spring框架中的使用

學習


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
黄色成人av在线| 久久亚洲精品小早川怜子66| 亚洲精品456在线播放狼人| 中日韩午夜理伦电影免费| 精品视频—区二区三区免费| 成人免费网站在线看| 成人精品一区二区三区| 欧美大片va欧美在线播放| 亚洲综合社区网| 97视频在线观看网址| 国产精品福利网| 亚洲精品aⅴ中文字幕乱码| 91久久久久久久久久久| 伊人久久精品视频| 国产精品免费视频xxxx| 日韩av在线免费| 欧美视频在线免费| 2019国产精品自在线拍国产不卡| 久久香蕉国产线看观看网| 97国产精品视频人人做人人爱| 欧美午夜视频在线观看| 精品国产91久久久久久老师| 国产精品久久久久久婷婷天堂| 日韩中文在线不卡| 国产精品高潮粉嫩av| 亚洲美女av在线| 亚洲精品美女在线观看| 国产成人拍精品视频午夜网站| 欧美性在线视频| 九九久久久久99精品| 日本视频久久久| 国模精品系列视频| 精品久久久久久久中文字幕| 亚洲aaaaaa| 亚洲精品国产精品国自产观看浪潮| 久久精品国产免费观看| 欧美日韩精品在线视频| 亚洲一区中文字幕在线观看| 国产日韩精品在线观看| 亚洲色图色老头| 美女撒尿一区二区三区| 91精品久久久久久久久久入口| 国产97在线|日韩| 国产精品一区二区电影| 欧美另类xxx| 一区二区三区视频在线| 欧美成人高清视频| 久久精品亚洲精品| 国内精品在线一区| 国自产精品手机在线观看视频| 久久中文字幕一区| 青青草成人在线| 欧美性生交xxxxx久久久| 久久国产精品久久久久| 国产一区视频在线| 国产精品爽黄69| 在线播放国产精品| 日韩激情视频在线播放| 欧美日韩国产成人在线| 国产一区香蕉久久| 久久精品国产久精国产一老狼| 国产精品久久久一区| 精品免费在线视频| 欧美性受xxxx黑人猛交| 992tv在线成人免费观看| 性欧美办公室18xxxxhd| 亚洲免费精彩视频| 国产精品99久久久久久久久| 久久91亚洲精品中文字幕奶水| 亚洲天堂免费视频| 亚洲成人精品久久久| 欧美xxxx做受欧美| 日本精品视频在线观看| 欧美性猛交xxxx黑人猛交| 伊人伊人伊人久久| 日韩在线视频网| 久久人人爽人人爽人人片亚洲| 国产免费成人av| 中文字幕亚洲天堂| 欧美亚洲国产另类| 国产精品久久久久久久7电影| 亚洲欧美综合另类中字| 国产精品久久久久久久久久东京| 久久精品久久久久| 欧美精品在线视频观看| 久久久久久久影视| 国产精品成人免费视频| 国产91精品视频在线观看| 亚洲福利视频二区| 性色av一区二区三区免费| 日本国产一区二区三区| 97在线观看免费| 不卡av在线网站| 欧美精品国产精品日韩精品| 亚洲综合色激情五月| 福利一区福利二区微拍刺激| 亚洲男人的天堂网站| 欧美激情精品久久久久久黑人| 日韩成人在线视频网站| 91精品国产高清久久久久久| 国产视频精品自拍| 欧美日韩国产在线看| 91精品国产色综合| 欧美久久精品午夜青青大伊人| 欧美成人精品在线| 日韩精品中文字| 91探花福利精品国产自产在线| 57pao成人永久免费视频| 欧美专区日韩视频| 中文字幕亚洲图片| 视频在线观看99| 97久久久免费福利网址| 性亚洲最疯狂xxxx高清| 国产精品永久免费视频| 精品亚洲va在线va天堂资源站| 国产男人精品视频| 亚洲在线免费视频| 久久九九有精品国产23| 色综合色综合网色综合| 一本色道久久88综合亚洲精品ⅰ| 久久久电影免费观看完整版| 欧美日本高清一区| 在线免费观看羞羞视频一区二区| 亚洲黄色www网站| 黑人极品videos精品欧美裸| 欧美成人黄色小视频| 91夜夜揉人人捏人人添红杏| 2019av中文字幕| 亚洲一区二区三区成人在线视频精品| 国产精品久久二区| 国产精品成人久久久久| 成人免费看吃奶视频网站| 亚洲精品日产aⅴ| 国产精品夫妻激情| 久久97精品久久久久久久不卡| 黑人极品videos精品欧美裸| 欧美日韩一区二区免费在线观看| 精品中文字幕在线观看| 久久久久五月天| 欧美日韩福利视频| 午夜精品福利视频| 国产亚洲视频中文字幕视频| 在线中文字幕日韩| 黑人狂躁日本妞一区二区三区| 91九色国产社区在线观看| 欧美成人午夜激情视频| 日韩视频在线免费| 8x海外华人永久免费日韩内陆视频| 日韩影视在线观看| 欧美高清一级大片| 亚洲激情视频网站| 国产情人节一区| 欧美亚洲日本黄色| 亚洲国产精品视频在线观看| 欧美香蕉大胸在线视频观看| 欧美性在线观看| 精品欧美激情精品一区| 91久久久久久国产精品| 精品高清美女精品国产区| 欧美日韩激情视频| 亚洲精品成人久久| 成人看片人aa| 日韩av影视在线| 久久伊人精品一区二区三区|