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

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

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

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

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
亚洲综合精品伊人久久| 国产精品视频99| 日韩激情av在线免费观看| 欧美另类极品videosbest最新版本| 欧美国产视频一区二区| 亚洲精品电影久久久| 国产精品爽爽ⅴa在线观看| 日韩欧美视频一区二区三区| 欧美猛交ⅹxxx乱大交视频| 欧美日韩国产中文精品字幕自在自线| 日韩亚洲第一页| 亚洲国产成人精品女人久久久| 青青在线视频一区二区三区| 久久久综合av| 亚洲精品福利视频| 亚洲精品动漫100p| 亚州欧美日韩中文视频| 97在线免费观看视频| 国语自产精品视频在线看抢先版图片| 国产成人涩涩涩视频在线观看| 8x拔播拔播x8国产精品| 日韩在线不卡视频| 日韩国产欧美精品在线| 中文字幕无线精品亚洲乱码一区| 91精品啪在线观看麻豆免费| 日韩高清a**址| 久久国产精品网站| 国产激情视频一区| 成人精品视频在线| 午夜精品久久久久久久男人的天堂| 成人精品一区二区三区电影黑人| 麻豆国产va免费精品高清在线| 亚洲综合中文字幕在线观看| 国产成人久久精品| 自拍偷拍亚洲精品| 欧美日韩成人在线视频| 国产精品丝袜久久久久久高清| 欧美日韩国产999| 国产欧美 在线欧美| 国产丝袜一区二区三区免费视频| 亚洲高清免费观看高清完整版| 欧美高清电影在线看| 欧美日韩国产中文字幕| 成人在线小视频| 亚洲国产天堂久久综合网| www.欧美精品| 国产精品美女主播| 成人亲热视频网站| 91极品女神在线| 久久久之久亚州精品露出| 欧美性高跟鞋xxxxhd| 久久久免费观看| 国产精品成人免费电影| 亚洲第一福利网站| 亚洲天堂男人的天堂| 亚洲影院色无极综合| 国产精品久久久999| 麻豆精品精华液| 国产91精品久久久久久久| 久久精品2019中文字幕| 国产精品香蕉国产| 国产91色在线播放| 日本韩国欧美精品大片卡二| 久久精品影视伊人网| 懂色aⅴ精品一区二区三区蜜月| 欧美性xxxx| 日韩中文字幕在线免费观看| 欧美成人剧情片在线观看| 中文字幕在线看视频国产欧美在线看完整| 欧美猛少妇色xxxxx| 青青精品视频播放| 在线视频欧美性高潮| 成人精品视频久久久久| 国产精品久久视频| 欧美精品在线看| 2019中文在线观看| 一区二区欧美在线| 国产精品羞羞答答| 午夜免费在线观看精品视频| 日本一欧美一欧美一亚洲视频| 精品亚洲永久免费精品| 国产精品一久久香蕉国产线看观看| 成人久久精品视频| 爽爽爽爽爽爽爽成人免费观看| 久久99久久久久久久噜噜| 91极品视频在线| 91九色单男在线观看| 深夜福利91大全| 高跟丝袜欧美一区| 国产精品自拍网| 精品久久久久久久久中文字幕| 亚洲国产美女久久久久| 精品亚洲aⅴ在线观看| 国产精品电影在线观看| 日韩在线视频线视频免费网站| 久久精品国产一区| 国产成人亚洲综合91精品| 欧美亚洲成人网| 国产精品免费久久久久久| 亚洲片国产一区一级在线观看| 色综合色综合久久综合频道88| 欧美又大又硬又粗bbbbb| 高跟丝袜一区二区三区| 视频一区视频二区国产精品| 国产精品免费久久久久影院| 亚洲少妇激情视频| 在线视频中文亚洲| 欧美成aaa人片在线观看蜜臀| 国产精品一区二区久久| 久久亚洲精品一区二区| 亚洲免费视频一区二区| 成人免费淫片aa视频免费| 粉嫩老牛aⅴ一区二区三区| 亚洲精品欧美日韩专区| 一区二区中文字幕| 国产一区二区三区四区福利| 国产精品一区久久| 欧美最顶级的aⅴ艳星| 韩国福利视频一区| 国产成+人+综合+亚洲欧洲| 粉嫩av一区二区三区免费野| 亚洲国产精品网站| 国产亚洲精品va在线观看| 亚洲一区制服诱惑| 欧美午夜无遮挡| 98精品国产自产在线观看| 日韩激情第一页| 亚洲视频网站在线观看| 国内外成人免费激情在线视频网站| 日韩久久免费视频| 精品视频久久久久久| 亚洲香蕉在线观看| 亚洲天堂视频在线观看| 欧美日韩国产限制| 成人黄色在线播放| 性夜试看影院91社区| 日本在线观看天堂男亚洲| 国产亚洲福利一区| 91美女片黄在线观看游戏| 国产精品一区二区在线| 国产日韩精品入口| 红桃视频成人在线观看| 一本大道香蕉久在线播放29| 精品视频一区在线视频| 国产精品网站视频| 日韩在线播放视频| 日韩成人高清在线| 人九九综合九九宗合| 久热精品视频在线| 国产在线视频2019最新视频| 亚洲第一精品自拍| 综合网日日天干夜夜久久| 国产精品美女午夜av| 精品视频在线观看日韩| 91精品国产综合久久久久久蜜臀| 欧美性猛交xxxx乱大交3| 91香蕉电影院| 日韩av在线免费观看| 亚洲夜晚福利在线观看| 欧美精品18videos性欧美| 亚洲欧洲在线免费| 国产午夜精品美女视频明星a级| 国产精品福利无圣光在线一区| 国产成人精品免高潮费视频|