jmockdata——java单元测试利器

单元测试时,总需要生成一些测试数据,String、Int、float等,甚至是复杂对象。

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

jmockdata是一个第三方的jar包,我最近使用过一些,感觉还不错。一下列举一些常见用法:

1、基本使用:

String str = JMockData.mock(String.class);
int i = JMockData.mock(int.class);
Integer num = JMockData.mock(Integer.class);
Person p = JMockData.mock(Person.class);

2、特殊使用——泛型:

如果模拟有泛型的类,如List,则写法如下:

List ps = JMockData.mock(new TypeReference(){});
注:这个jar包对于泛型有一定的支持,但有些漏洞,包装类与被包装类的泛型都相同,如Page中T指示成员类,Person中T指示id字段的类型,则Page<Person>在mock时会因为’T’的重复而无法生成模拟数据。

3、排除类中特定字段:

MockConfig config = new MockConfig();
config.excludes(Person.class, "id");// 排除id字段
Person p = JMockData.mock(Person.class, config);

4、为特定字段自定义生成方法:

如,想让生成的所有类,状态字段为’1’、有效,则如下操作,当然Integer也可以是某个具体的POJO类。

MockConfig config = new MockConfig();
final DataConfig statusDC = config.subConfig("status");
config.registerMocker(new IntegerMocker() {
    @Override
    public Integer mock(DataConfig mockConfig) {
        // 修改status字段为固定值
        if (statusDC == mockConfig) {
            return 1;
        }
        return super.mock(mockConfig);
    }
}, Integer.class);
Person p = JMockData.mock(Person.class, config);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jmockdata(再也不用苦逼的造测试数据了) Jmockdta是一款实现模拟JAVA类型或对象的实例化并随机初始化对象的数据的工具框架。单元测试利器。     The plug-in of Jmockdata what through random algorithm mock java data.   Jmockdata插件通过随机算法模拟Java数据.   版本信息 Jmockdata-2.0 发布时间 2017-02-03 Jmockdata-1.0 发布时间 2017-01-04 具体介绍和用法可以参考如下:   0. 模拟数据入口方法 JMockData.mock(JmockDataWrapper) 1. 被模拟数据必须继承JmockDataWrapper经过它的包装 2. 被模拟的数据最好是plain bean,只提供getter,setter,has,is方法的才可以被模拟 3. 框架默认实现了40个元数据类型的数据模拟器包括:   byte.class,Byte.class,byte[].class,Byte[].class, 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等复杂深度的数据结构的数据模拟。   4. 可以通过JmockDataContext 获取模拟过程的所有上下文信息,甚至可以打印整个模拟类型树   5. 可以通过JMockDataManager 注册模拟数据类型,重写模拟数据算法,注册模拟数据类拦截器等 6. 可以通过实现MockData来实现一个模拟数据类型 7. 可以通过实现JmockDataTemplate,或者继承JmockDataTemplateDefault来重写模拟数据算法 8. 可以通过实现JmockDataInterceptor来实现一个拦截器 9. 具体示例实践请参考https://github.com/jsonzou/jmockdata-demo 10. 有问题或者对本框架有新的想法,请联系我, 作者:jsonzou 标签:Jmockdata
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值