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

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

Jmockdata 使用介紹(再也不用苦逼的造測試數據了)

2019-11-10 17:20:49
字體:
來源:轉載
供稿:網友

Jmockdata

Jmockdta是一款實現模擬java類型或對象的實例化并隨機初始化對象的數據的工具框架。單元測試的利器。The plug-in of Jmockdata what through random algorithm mock java data.Jmockdata插件通過隨機算法模擬Java數據.

具體介紹和用法可以參考如下:

模擬數據入口方法 JMockData.mock(JmockDataWrapper)被模擬數據必須繼承JmockDataWrapper經過它的包裝被模擬的數據最好是plain bean,只提供getter,setter,has,is方法的才可以被模擬

框架默認實現了40個元數據類型的數據模擬器包括:

short.class,Short.class,short[].class,Short[].class, int.class,Integer.class,int[].class,Integer[].class, long.class,Long.class,long[].class,Long[].class, float.class,Float.class,float[].class,Float[].class, double.class,Double.class,double[].class,Double[].class, boolean.class,Boolean.class,boolean[].class,Boolean[].class, char.class,Character.class,char[].class,Character[].class, String.class,String[].class, BigDecimal.class,BigDecimal[].class, BigInteger.class,BigInteger[].class, Date.class,Date[].class

通過對以上基本元數據類型的模擬實現,能夠進一步實現BEAN,LIST,SET,ARRAY等結構的模擬。

可以通過JmockDataContext 獲取模擬過程的所有上下文信息,甚至可以打印整個模擬類型樹 可以通過JMockDataManager 注冊模擬數據類型,重寫模擬數據算法,注冊模擬數據類攔截器等可以通過實現MockData來實現一個模擬數據類型可以通過實現JmockDataTemplate,或者繼承JmockDataTemplateDefault來重寫模擬數據算法可以通過實現JmockDataInterceptor來實現一個攔截器具體示例實踐請參考https://github.com/jsonzou/jmockdata-demo有問題或者對本框架有新的想法,請聯系我, 作者:jsonzou

下載引入:Download

Jmockdata-2.0

Jar

Jmockdata-2.0

Maven

<dependency> <groupId>com.github.jsonzou</groupId> <artifactId>jmockdata</artifactId> <version>2.0</version> </dependency>

Gradle

compile group: 'com.github.jsonzou', name: 'jmockdata', version: '2.0'

Jmockdata-1.0

Jar

Jmockdata-1.0

Maven

<dependency> <groupId>com.github.jsonzou</groupId> <artifactId>jmockdata</artifactId> <version>1.0</version> </dependency>

Gradle

compile group: 'com.github.jsonzou', name: 'jmockdata', version: '1.0'

測試示例

具體示例請參考:https://github.com/jsonzou/jmockdata-demo或者下載該示例項目Please refer to the specific example:https://github.com/jsonzou/jmockdata-demo Ordownload the demo PRoject>

示例代碼片段如下:

/* * Copyright (C) 2016 Baidu, Inc. All Rights Reserved. */ package org.jsonzou.jmockdata.test; import com.alibaba.fastjson.JSON; import org.jsonzou.jmockdata.JMockData; import org.jsonzou.jmockdata.mockdata.JMockDataManager; import org.jsonzou.jmockdata.test.custommocktemplate.CustomJmockDataTemplate; import org.jsonzou.jmockdata.test.interceptor.OneJmockDataInterceptor; import org.jsonzou.jmockdata.test.registermockdatabean.MockDataStringBuffer; import org.jsonzou.jmockdata.test.wrapperbean.*; import org.junit.Test; /** * 測試 * * @author jsonzou * @version 1.0 * @since 2016/12/26 */ public class JMockDataTest { /** * 測試模擬簡單List<String> */ @Test public void mockTest_SimpleStringList() { MockDemoSimpleListStringWrapper mockData = JMockData.mock(MockDemoSimpleListStringWrapper.class); mockData.getJmockDataContext().printTree(); // 打印類型樹 print(mockData.getList()); } /** * 測試模擬任意類型的數據 */ @Test public void mockTest_MockAnyData() { MockDemoBeanAnyDataWrapper mockData = JMockData.mock(MockDemoBeanAnyDataWrapper.class); // mockData.getJmockDataContext().printTree(); // 打印類型樹 mockData.setJmockDataContext(null); print(mockData); } /** * 測試模擬自循環引用的數據 */ @Test public void mockTest_MockSelfRefData() { JMockDataManager.getInstance().setMaxSelfRefLevel(4);// 設置自循環體循環層級上限 MockDemoBeanSelfRefDataWrapper mockData = JMockData.mock(MockDemoBeanSelfRefDataWrapper.class); // mockData.getJmockDataContext().printTree(); // 打印類型樹 mockData.setJmockDataContext(null); print(mockData); } /** * 測試模擬類型攔截器,之攔截String類型的模擬 */ @Test public void mockTest_Interceptor() { JMockDataManager.getInstance().interceptors(OneJmockDataInterceptor.class); // 攔截器 =》只攔截String類型 MockDemoBeanSimpleDataWrapper mockData = JMockData.mock(MockDemoBeanSimpleDataWrapper.class); print(mockData.getSimpleData()); } /** * 測試模擬,增加自定義模擬類型,StringBuffer */ @Test public void mockTest_RegisterMockDataBean() { JMockDataManager.getInstance().registerMockData(new MockDataStringBuffer(), StringBuffer.class); MockDemoCustomStringBufferWrapper mockData = JMockData.mock(MockDemoCustomStringBufferWrapper.class); print(mockData.getStringBuffer()); } /** * 測試模擬,自定義模擬數據模板方法 */ @Test public void mockTest_CustomJmockDataTemplate() { JMockDataManager.getInstance().setMockTemplate(new CustomJmockDataTemplate()); MockDemoBeanSimpleDataWrapper mockData = JMockData.mock(MockDemoBeanSimpleDataWrapper.class); print(mockData.getSimpleData()); } /** * 打印json結構 * * @param data */ private void print(Object data) { System.out.println(JSON.toJSONString(data, true)); } }

配置文件config.properties 說明與使用

## value[seed,seed,seed]seedCharacter= 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y ZseedString= 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z## valueRange[min,max] / [fixed value]rangeShort=0,10rangeInteger=0,10# Double & BigdecimalrangeDouble=0.0,10.00 rangeFloat=0.0,10.00# Long & BigIntegerrangeLong=0.0,10.00## range-YMDhms[Y-min,Y-max,M-min,M-max,D-min,D-max,h-min,h-max,m-min,m-max,s-min,s-max]# default current yearrangeDateY=rangeDateM=0,12rangeDateD=0,30rangeDateH=0,60rangeDateMi=0,60rangeDateS=0,60# range-boolean [false,true] / [fixed value]rangeBoolean=false,true## arrSizeRange[arrSizeRange-min,arrSizeRange-max] / [fixed size]arrsizeBean=0,10arrsizeBigdecimal=0,10arrsizeBiginteger=0,10arrsizeBoolean=0,10arrsizeByte=0,10arrsizeCharacter=0,10arrsizeDate=0,10arrsizeDouble=0,10arrsizeFloat=0,10arrsizeInteger=0,10arrsizeLong=0,10arrsizeShort=0,10arrsizeString=0,10

代碼示例

/** * 測試配置文件 》 改變默認算法行為 */ @Test public void mockTest_config() { JMockDataManager.getInstance().config("conf/config.properties"); // System.out.println(JSONObject.toJSONString(JMockDataManager.getInstance().config(),true)); MockDemoBeanConfigWrapper mockData = JMockData.mock(MockDemoBeanConfigWrapper.class); mockData.setJmockDataContext(null); print(mockData); }

開源中國>Jmockdata


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩最新中文字幕电影免费看| 北条麻妃久久精品| 色yeye香蕉凹凸一区二区av| 日韩精品高清在线观看| 成人网欧美在线视频| 91视频国产高清| 欧美黑人一区二区三区| 国产欧美精品一区二区三区-老狼| 欧美黄色三级网站| 日韩在线精品视频| 国产精品xxx视频| 91日本在线视频| 欧美日韩中文字幕在线| 日韩欧美国产视频| www.午夜精品| 午夜免费久久久久| 国产精品一区二区三区在线播放| 成人444kkkk在线观看| 欧美丝袜一区二区三区| 5252色成人免费视频| 久久亚洲综合国产精品99麻豆精品福利| 亚洲国产精品人人爽夜夜爽| xvideos亚洲| 精品国产区一区二区三区在线观看| 欧美成人免费大片| 国产91免费看片| 亚洲精品国产综合久久| 97久久久免费福利网址| 亚洲免费一级电影| 国产午夜精品麻豆| 69久久夜色精品国产69乱青草| 国产日韩亚洲欧美| 亚洲久久久久久久久久久| 91成人国产在线观看| 精品国偷自产在线| 欧美日韩中文字幕| 狠狠做深爱婷婷久久综合一区| 青青草精品毛片| 欧美色道久久88综合亚洲精品| 91在线视频成人| 亚洲第一天堂av| 亚洲人成在线观| 欧美伊久线香蕉线新在线| 45www国产精品网站| 精品国产乱码久久久久久虫虫漫画| 色婷婷综合成人| 亚洲图中文字幕| 日韩精品在线电影| 国产欧美精品日韩| 国内精品400部情侣激情| 欧美黑人狂野猛交老妇| 狠狠躁夜夜躁人人爽超碰91| 欧美激情2020午夜免费观看| 欧美美女操人视频| 欧美裸体xxxxx| 在线播放日韩专区| 欧美成人sm免费视频| 久久久久久噜噜噜久久久精品| 亚洲春色另类小说| 日韩av一卡二卡| 欧美激情中文字幕乱码免费| 亚洲最大福利网站| 欧美日韩国产成人| 亚洲美女av在线| 欧美人与物videos| www国产精品视频| 欧美影院久久久| 日韩美女av在线| 欧美肥老太性生活视频| 国产精品电影久久久久电影网| 亚洲欧美福利视频| 中文字幕日韩专区| 欧美二区乱c黑人| 久久久www成人免费精品张筱雨| 成人性生交xxxxx网站| 成人av电影天堂| 午夜精品福利视频| 国产精品扒开腿做爽爽爽男男| 国产日韩欧美日韩大片| 国产午夜精品一区二区三区| 92看片淫黄大片欧美看国产片| 成人国产精品久久久| 欧美日韩福利视频| 国产欧美在线看| 国产欧美一区二区白浆黑人| 国产最新精品视频| 国产日韩av在线| 国产主播精品在线| 一区二区在线免费视频| 亚洲女同精品视频| 中文字幕一区二区精品| 91免费综合在线| 日韩精品视频在线播放| 亚洲女人天堂色在线7777| 久久久久免费精品国产| 97在线观看视频国产| 91性高湖久久久久久久久_久久99| 亚洲国产精品va在线看黑人动漫| 欧美国产日韩二区| 欧美人在线观看| 久久久久久久久综合| www亚洲欧美| 欧美精品第一页在线播放| 久久久久九九九九| 久久久国产精彩视频美女艺术照福利| 精品欧美一区二区三区| 亚洲国产日韩精品在线| 欧美不卡视频一区发布| 亚洲精品免费av| 一区二区欧美在线| 日韩欧美大尺度| 国产精品视频一区二区高潮| 久久99久国产精品黄毛片入口| 日本免费久久高清视频| 成人精品久久久| 亚洲最大成人在线| 4438全国亚洲精品在线观看视频| 日韩性生活视频| 久久精品久久久久久国产 免费| 国产综合香蕉五月婷在线| 日韩av手机在线| 国产91精品最新在线播放| 一区二区欧美日韩视频| 国产精品成人av性教育| 欧美一区二粉嫩精品国产一线天| 久久久久国产精品免费| 日韩中文字幕免费看| 亚洲美女av网站| 亚洲欧美国产一区二区三区| 精品国产91久久久久久| 成人美女av在线直播| 日韩在线播放av| 国产色婷婷国产综合在线理论片a| 国内精久久久久久久久久人| 亚洲免费视频在线观看| 精品露脸国产偷人在视频| 久久在线观看视频| 日韩精品亚洲元码| 日韩国产一区三区| 亚洲黄页视频免费观看| 欧美午夜精品久久久久久人妖| 国产精自产拍久久久久久蜜| 欧美亚洲日本网站| xxxxxxxxx欧美| 亚洲国产精品久久久久久| 欧美成人免费va影院高清| 亚洲欧美日韩精品久久亚洲区| 国产精品扒开腿做爽爽爽的视频| 国产精品美女在线观看| 欧美巨乳美女视频| 亚洲精品电影网在线观看| 97国产在线视频| 成人久久一区二区| 日本道色综合久久影院| 91精品久久久久久久久久久| 国产精品久久久久av免费| 日韩精品亚洲视频| 成人444kkkk在线观看| 久久精品美女视频网站| 92福利视频午夜1000合集在线观看| 日韩成人小视频| 久久久久久av| 亚洲a级在线观看| 国产精品久久婷婷六月丁香|