• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

mock: 模拟生成任意数据的工具,java实现

原作者: [db:作者] 来自: 网络 收藏 邀请

Mock

Mock是一个Java实现的,可以模拟任何数据的框架。

Mock来源

公司技术架构为前后台分类开发,在后端接口没有完成时需要返回模拟数据,测试时也需要模拟数据,于是需要一个可以模拟任意数据的工具,企业开发种从头写自己实现是不现实的,太浪费时间,于是github找了一个适合的进行修改,于是有了现在的mock。

修改自jsonzou的jmockdata

再次感谢大佬的源代码,阅读收益良多,也帮我快速解决了数据模拟的问题https://github.com/jsonzou/jmockdata

特色

  • 支持丰富多样的数据类型模拟,包括:Java基本类型、字符串、枚举、日期、数组、多维数组、集合[List|Set|Map]、枚举、Java对象等
  • 支持泛型
  • 支持继承
  • 支持循环依赖、自依赖(手动开启enabledCircle)
  • 支持忽略字段
  • 支持改变mockConfig来自定义模拟数据策略
  • 支持JDK1.8+,无任何第三方依赖
  • 源代码仅有60K,很小

基础类型

支持以下基础类型直接模拟

描述类型
基础类型byte boolean char short int long float double
包装类型包装Byte Boolean Character Short Integer Long Float Double
常用类型BigDecimal BigInteger Date String 枚举
自定义类型自定义的任意class,同时支持class的互相嵌套,自嵌套,继承 等等类型
多维数组以上所有类型的多维数组 如:int[] int[][] int[][][] .... 等

快速启动

T t = Mock.mock(T.class);

T可以是任意类型,如果T带有泛型,比如T为List,那么使用如下方式

T t = Mock.mock(new TypeKit<List<String>>() {});

TypeKit是一个封装类,目的是封装要获取的泛型类型

其他使用方式,高级模拟方式以及详细使用参考测试代码(标注Maven工程的test包下)

详细使用

###基本类型,常用类型,集合(List,Set,Map)类型以及其多维数组类型

    /**      * java基本类型模拟测试      */    @Test    public void testBasic() {        //基本类型模拟        byte byte1 = Mock.mock(byte.class);        System.err.println(byte1);        short short1 = Mock.mock(short.class);        System.err.println(short1);        int int1 = Mock.mock(int.class);        System.err.println(int1);        long long1 = Mock.mock(long.class);        System.err.println(long1);        double double1 = Mock.mock(double.class);        System.err.println(double1);        float float1 = Mock.mock(float.class);        System.err.println(float1);        char char1 = Mock.mock(char.class);        System.err.println(char1);        boolean boolean1 = Mock.mock(boolean.class);        System.err.println(boolean1);        //基本类型封装类模拟        Byte byte2 = Mock.mock(Byte.class);        System.err.println(byte2);        Short short2 = Mock.mock(Short.class);        System.err.println(short2);        Integer int2 = Mock.mock(Integer.class);        System.err.println(int2);        Long long2 = Mock.mock(Long.class);        System.err.println(long2);        Double double2 = Mock.mock(Double.class);        System.err.println(double2);        Float float2 = Mock.mock(Float.class);        System.err.println(float2);        Character char2 = Mock.mock(Character.class);        System.err.println(char2);        Boolean boolean2 = Mock.mock(Boolean.class);        System.err.println(boolean2);        //常用类型模拟        //字符串        String string = Mock.mock(String.class);        System.err.println(string);        //大精度        BigDecimal bigDecimal = Mock.mock(BigDecimal.class);        System.err.println(bigDecimal);        //大整形        BigInteger bigInteger = Mock.mock(BigInteger.class);        System.out.println(bigInteger);        //日期        Date date = Mock.mock(Date.class);        System.out.println(date);        //枚举        DayEnum dayEnum = Mock.mock(DayEnum.class);        System.out.println(dayEnum);    }    /**     * 基本类型的数组类型模拟测试     */    @Test    public void testArray() {       //基本类型 数组 模拟        byte[] byte1 = Mock.mock(byte[].class);        System.err.println(JsonUtil.toStr(byte1));//byte转json 这里做了new string 打印是string        //循环打印出来        for (byte b:byte1){            System.out.println(b);        }        short[] short1 = Mock.mock(short[].class);        System.err.println(JsonUtil.toStr(short1));        int[] int1 = Mock.mock(int[].class);        System.err.println(JsonUtil.toStr(int1));        long[] long1 = Mock.mock(long[].class);        System.err.println(JsonUtil.toStr(long1));        double[] double1 = Mock.mock(double[].class);        System.err.println(JsonUtil.toStr(double1));        float[] float1 = Mock.mock(float[].class);        System.err.println(JsonUtil.toStr(float1));        char[] char1 = Mock.mock(char[].class);        System.err.println(JsonUtil.toStr(char1));        boolean[] boolean1 = Mock.mock(boolean[].class);        System.err.println(JsonUtil.toStr(boolean1));        //基本类型封装类模拟        Byte[] byte2 = Mock.mock(Byte[].class);        System.err.println(JsonUtil.toStr(byte2));        Short[] short2 = Mock.mock(Short[].class);        System.err.println(JsonUtil.toStr(short2));        Integer[] int2 = Mock.mock(Integer[].class);        System.err.println(JsonUtil.toStr(int2));        Long[] long2 = Mock.mock(Long[].class);        System.err.println(JsonUtil.toStr(long2));        Double[] double2 = Mock.mock(Double[].class);        System.err.println(JsonUtil.toStr(double2));        Float[] float2 = Mock.mock(Float[].class);        System.err.println(JsonUtil.toStr(float2));        Character[] char2 = Mock.mock(Character[].class);        System.err.println(JsonUtil.toStr(char2));        Boolean[] boolean2 = Mock.mock(Boolean[].class);        System.err.println(JsonUtil.toStr(boolean2));        //常用类型 数组 模拟        //字符串        String[] string = Mock.mock(String[].class);        System.err.println(JsonUtil.toStr(string));        //大精度        BigDecimal[] bigDecimal = Mock.mock(BigDecimal[].class);        System.err.println(JsonUtil.toStr(bigDecimal));        //大整形        BigInteger[] bigInteger = Mock.mock(BigInteger[].class);        System.out.println(JsonUtil.toStr(bigInteger));        //日期        Date[] date = Mock.mock(Date[].class);        System.out.println(JsonUtil.toStr(date));        //枚举        DayEnum[] dayEnum = Mock.mock(DayEnum[].class);        System.out.println(JsonUtil.toStr(dayEnum));    }    /**     * 基本类型的二维数组模拟测试     */    @Test    public void testArray2() {        //基本类型 二维数组 模拟        byte[][] byte1 = Mock.mock(byte[][].class);        System.err.println(JsonUtil.toStr(byte1));//byte转json 这里做了new string 打印是string        short[][] short1 = Mock.mock(short[][].class);        System.err.println(JsonUtil.toStr(short1));        int[][] int1 = Mock.mock(int[][].class);        System.err.println(JsonUtil.toStr(int1));        long[][] long1 = Mock.mock(long[][].class);        System.err.println(JsonUtil.toStr(long1));        double[][] double1 = Mock.mock(double[][].class);        System.err.println(JsonUtil.toStr(double1));        float[][] float1 = Mock.mock(float[][].class);        System.err.println(JsonUtil.toStr(float1));        char[][] char1 = Mock.mock(char[][].class);        System.err.println(JsonUtil.toStr(char1));        boolean[][] boolean1 = Mock.mock(boolean[][].class);        System.err.println(JsonUtil.toStr(boolean1));        //基本类型封装类模拟        Byte[][] byte2 = Mock.mock(Byte[][].class);        System.err.println(JsonUtil.toStr(byte2));        Short[][] short2 = Mock.mock(Short[][].class);        System.err.println(JsonUtil.toStr(short2));        Integer[][] int2 = Mock.mock(Integer[][].class);        System.err.println(JsonUtil.toStr(int2));        Long[][] long2 = Mock.mock(Long[][].class);        System.err.println(JsonUtil.toStr(long2));        Double[][] double2 = Mock.mock(Double[][].class);        System.err.println(JsonUtil.toStr(double2));        Float[][] float2 = Mock.mock(Float[][].class);        System.err.println(JsonUtil.toStr(float2));        Character[][] char2 = Mock.mock(Character[][].class);        System.err.println(JsonUtil.toStr(char2));        Boolean[][] boolean2 = Mock.mock(Boolean[][].class);        System.err.println(JsonUtil.toStr(boolean2));        //常用类型 数组 模拟        //字符串        String[][] string = Mock.mock(String[][].class);        System.err.println(JsonUtil.toStr(string));        //大精度        BigDecimal[][] bigDecimal = Mock.mock(BigDecimal[][].class);        System.err.println(JsonUtil.toStr(bigDecimal));        //大整形        BigInteger[][] bigInteger = Mock.mock(BigInteger[][].class);        System.out.println(JsonUtil.toStr(bigInteger));        //日期        Date[][] date = Mock.mock(Date[][].class);        System.out.println(JsonUtil.toStr(date));        //枚举        DayEnum[][] dayEnum = Mock.mock(DayEnum[][].class);        System.out.println(JsonUtil.toStr(dayEnum));    }    /**     * 基本类型的多维数组测试     */    @Test    public void testArray3() {        //基本类型 三维数组 模拟        byte[][][] byte1 = Mock.mock(byte[][][].class);        System.err.println(JsonUtil.toStr(byte1));//byte转json 这里做了new string 打印是string        short[][][] short1 = Mock.mock(short[][][].class);        System.err.println(JsonUtil.toStr(short1));        int[][][] int1 = Mock.mock(int[][][].class);        System.err.println(JsonUtil.toStr(int1));        long[][][] long1 = Mock.mock(long[][][].class);        System.err.println(JsonUtil.toStr(long1));        double[][][] double1 = Mock.mock(double[][][].class);        System.err.println(JsonUtil.toStr(double1));        float[][][] float1 = Mock.mock(float[][][].class);        System.err.println(JsonUtil.toStr(float1));        char[][][] char1 = Mock.mock(char[][][].class);        System.err.println(JsonUtil.toStr(char1));        boolean[][][] boolean1 = Mock.mock(boolean[][][].class);        System.err.println(JsonUtil.toStr(boolean1));        //基本类型封装类模拟        Byte[][][] byte2 = Mock.mock(Byte[][][].class);        System.err.println(JsonUtil.toStr(byte2));        Short[][][] short2 = Mock.mock(Short[][][].class);        System.err.println(JsonUtil.toStr(short2));        Integer[][][] int2 = Mock.mock(Integer[][][].class);        System.err.println(JsonUtil.toStr(int2));        Long[][][] long2 = Mock.mock(Long[][][].class);        System.err.println(JsonUtil.toStr(long2));        Double[][][] double2 = Mock.mock(Double[][][].class);        System.err.println(JsonUtil.toStr(double2));        Float[][][] float2
                      

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap