Junit单元测试数据生成工具类
2019-09-17 10:46:10来源:博客园 阅读 ()
Junit单元测试数据生成工具类
在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);
工具类代码:
package com.enation.app.javashop.saas; import com.enation.app.javashop.framework.util.StringUtil; import org.springframework.beans.BeanUtils; import java.beans.PropertyDescriptor; /** * 模拟数据生成器 * @author kingapex * @version 1.0 * @since 7.1.0 * 2019-08-06 */ public class MockDataGenerator { public static String create(Class clz) { StringBuffer mockStr = new StringBuffer(); 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"); } } return mockStr.toString(); } private static String 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
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Servlet的生命周期
- Spire.Cloud.SDK for Java 合并、拆分Excel单元格 2020-06-09
- Mybaties简单实例测试及注意问题 2020-06-07
- 单元测试 springboot-test 2020-06-07
- JavaGUI练习 - 正交测试用例生成小工具 2020-05-31
- Spring07_纯注解实战及Spring整合Junit 2020-05-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash