国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

EassyMock實踐 捕獲參數

2019-11-14 22:44:12
字體:
來源:轉載
供稿:網友
EassyMock實踐 捕獲參數

在測試接口過程中,有時我們希望知道自己期望傳入的參數是什么,以此來判斷傳入參數的正確行,這時就需要用到EassyMock的capture方法.該方法能捕獲傳入的參數存放到自定義的變量中,然后用捕獲的參數與期望的參數進行對比,從而判斷調用接口時使用的參數是否正確.

下面用例子演示一下:

要測試的接口

package MockTestWithCapture;public interface Service {    void handle(int arg, int[] array);}

測試的類

package MockTestWithCapture;import static org.junit.Assert.*;import org.easymock.*;import org.junit.*;import static org.easymock.EasyMock.*;public class TestService {    @Test    public void test() {                Service mockService = createMock("mockService", Service.class);                //首先定義要用來存放捕獲參數的變量        Capture<Integer> capArg = new Capture<Integer>();        Capture<Object> capArray = new Capture<Object>();//Capture沒有對應數組的,所以只能用Object存放數組,之后在強制性轉換                //這里是重點,需要調用capture方法捕獲實際傳入的參數        //注意這里第一個參數必須用captureInt方法,不能用capture方法,否則因為傳入參數類型不匹配而報錯        mockService.handle(captureInt(capArg), (int[])capture(capArray));        //        下面的寫法也爭取//        int a1 = captureInt(capArg);//        int[] a2 = (int[])capture(capArray);//        mockService.handle(a1, a2);        replay(mockService);                int arg = 100;        int[] array = {1,2,3,4};                //實際調用接口傳入的參數是arg和array        mockService.handle(arg, array);                //捕獲實際傳入的參數        int actual1 = capArg.getValue();        int[] actual2= (int[])capArray.getValue();                //這里我們將捕獲的參數進行校驗        assertEquals(arg, actual1);        assertArrayEquals(array, actual2);                verify(mockService);    }}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新宾| 招远市| 嘉善县| 上高县| 上栗县| 嘉黎县| 黔西县| 潍坊市| 吴旗县| 得荣县| 东乡县| 安塞县| 武清区| 黄浦区| 金秀| 伊通| 容城县| 同心县| 东方市| 白朗县| 丹棱县| 崇义县| 买车| 渑池县| 西城区| 郎溪县| 靖边县| 安徽省| 沁阳市| 桃园市| 齐齐哈尔市| 朔州市| 衡南县| 沅陵县| 宁阳县| 龙泉市| 永平县| 岱山县| 普宁市| 南岸区| 璧山县|