Jmockdata

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

基本介紹

  • 軟體名稱:Jmockdata
  • 開發商:個人
  • 軟體平台:跨平台
  • 軟體版本:1.0
  • 更新時間:2017/01/04
  • 軟體語言:Java
  • 軟體大小:53k
  • 軟體授權:Apache 2.0
基本介紹,引入,Maven,Gradle,測試使用示例,

基本介紹

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來實現一個攔截器

引入

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'

測試使用示例


示例代碼片段如下:
        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;        /**         * 測試         *         * @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));            }}

相關詞條

熱門詞條

聯絡我們