Java测试类生成工具类_Junit单元测试数据生成工具类

python web自动化测试设计构工具书

40.9元

包邮

(需用券)

去购买 >

c485402013c790ea1bdfafa1931b58c8.png

在Junit单元测试中,经常需要对一些领域模型的属性赋值,以便传递给业务类测试,常见的场景如下:

com.enation.javashop.Goods goods = new com.enation.javashop.Goods();

goods.setBrandId(1);

goods.setCategoryId(1);

goods.setGoodsName("测试商品");

goods.setPrice(1.01);

goods.setSn("100001");

goods.setWeight(1.01);

如果领域模型的属性特别多,手工去写set方法令人发指,写了一个生成的工具类,用法如下:

String mockCode = MockDataGenerator.create(Goods.class);

生成结果:

com.enation.javashop.Goods goods = new com.enation.javashop.Goods();

goods.setBrandId(819);

goods.setCategoryId(109);

goods.setCost(1.01);

goods.setGoodsId(970);

goods.setGoodsName("random_str748");

goods.setGoodsTransfeeCharge(164);

goods.setHaveSpec(506);

goods.setIntro("random_str344");

goods.setMarketEnable(878);

goods.setMktprice(1.01);

goods.setPrice(1.01);

goods.setSn("random_str316");

goods.setWeight(1.01);

工具类代码:

6e2a0905176d5a6eab4471b97c59bf50.gif

4edcd4b7fcc1553677e8a297de5ade3d.gif

packagecom.enation.app.javashop.saas;importcom.enation.app.javashop.framework.util.StringUtil;importorg.springframework.beans.BeanUtils;importjava.beans.PropertyDescriptor;/*** 模拟数据生成器

*@authorkingapex

*@version1.0

*@since7.1.0

* 2019-08-06*/

public classMockDataGenerator {public staticString create(Class clz) {

StringBuffer mockStr= newStringBuffer();

PropertyDescriptor[] propertyDescriptors=BeanUtils.getPropertyDescriptors(clz);

String objName=clz.getSimpleName();char[] chars =objName.toCharArray();

chars[0]+=32;

objName=String.valueOf(chars);

mockStr.append(clz.getName()+ " "+ objName+" = new "+ clz.getName() +"();\n");for(PropertyDescriptor descriptor : propertyDescriptors) {if (descriptor.getWriteMethod() != null) {

String name=descriptor.getWriteMethod().getName();

String value=createValue( descriptor.getPropertyType());

mockStr.append(objName+ "." + name + "(" + value + ");\n");

}

}returnmockStr.toString();

}private staticString createValue( Class clz) {if (clz.equals(java.lang.Integer.class)) {return StringUtil.getRandStr(3);

}if (clz.equals(java.lang.Double.class)) {return "1.01";

}if (clz.equals(java.lang.String.class)) {return "\"random_str"+ StringUtil.getRandStr(3)+"\"";

}return "";

}

}

View Code

原文链接:https://www.cnblogs.com/javashop-docs/p/11526652.html

java 11官方入门(第8版)教材

79.84元

包邮

(需用券)

去购买 >

f0f3f55624fb396b1764d42d6df88864.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值