Java基于Javafaker生成测试数据
作者:码农小胖哥 发布时间:2023-11-23 09:36:16
标签:java,Javafaker,测试
1. 前言
老板说,明天甲方要来看产品,你得造点数据,而且数据必须是“真”的,演示效果要好看一些,这样他才会买我们的产品,我好明年给你换个嫂子。一般开发接到这种过分要求都不会很乐意去做,这完全是体力劳动,而且很棘手。今天胖哥教你一招,让你做出逼真的“假”数据。
2. javafaker
我们Java是有可以生成仿真数据的框架的,这里我安利一个Javafaker的框架,你只需要在项目中引入:
<dependency>
<groupId>com.github.javafaker</groupId>
<artifactId>javafaker</artifactId>
<version>1.0.2</version>
</dependency>
忘记说了它主要的使用场景就是为了制造仿真测试数据,而并不是用来造假。
然后胖哥来演示一下它的用法,先定义一个Java Bean :
/**
* User info.
*
* @author felord.cn
* @since 10 :50
*/
@Data
public class UserInfo {
/**
* 真实姓名
*/
private String realName;
/**
* 手机
*/
private String cellPhone;
/**
* 大学
*/
private String universityName;
/**
* 城市
*/
private String city;
/**
* 地址
*/
private String street;
}
然后声明一个Faker对象,你可以根据需要进行本地化声明,如果是使用中国的:
Faker fakerWithCN = new Faker(Locale.CHINA);
你要是想造点美帝的数据就改成这样:
Faker fakerWithUS = new Faker(Locale.US);
这里我们使用中国来生成模拟10条仿真数据:
for (int i = 0; i < 10; i++) {
UserInfo userInfo = new UserInfo();
userInfo.setRealName(fakerWithCN.name().fullName());
userInfo.setCellPhone(fakerWithCN.phoneNumber().cellPhone());
userInfo.setCity(fakerWithCN.address().city());
userInfo.setStreet(fakerWithCN.address().streetAddress());
userInfo.setUniversityName(fakerWithCN.university().name());
System.out.println("userInfo = " + userInfo);
}
我们来看下结果:
是不是看上去跟真的一样,但是一定要用到正途,不要用到歪门邪道上。
3. 总结
用了javafaker之后我们不但可以完成老板提出的需求,而且可以减少我们平常使用测试的时候用各种test填充的局面。好了今天的分享就到这里。我是 码农小胖哥,多多关注,分享更多有用的编程干货。
来源:https://segmentfault.com/a/1190000038709193
0
投稿
猜你喜欢
- 用法在java中经常会遇到需要对数据进行类型转换的场景,String类型的数据转为Int类型属于比较常见的场景,主要有两种转换方法:1. 使
- 序言小编在项目中有遇到使用 flutter 实现扫码枪接入的需求。为方便使用,小编把能力封装成 package 并发布。好记性不如烂笔头,下
- 本文实例讲述了Java实现批量向mysql写入数据的方法。分享给大家供大家参考,具体如下:private static String use
- throw抛出异常的方式比较直接:if(age < 0){throw new MyException("年龄不能为负数!&q
- 通用配置#下面介绍的整合JDBC和整合MyBatis都需要添加的实体类和配置数据库表#CREATE TABLE `user` ( `id`
- 本Demo为练手小项目,主要是熟悉目前主流APP的架构模式.此项目中采用MVC设计模式,纯代码和少许XIB方式实现.主要实现了朋友圈功能和摇
- startActivityForResult与startActivity的不同之处在于:1、startActivity( )仅仅是跳转到目标
- java * 的方法总结AOP的拦截功能是由java中的 * 来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该
- 比如在类上使用该注解 @Alias("dDebtEntity")则在mapper.xml文件中resultType=&q
- 准备:wildfly/tomcat或者其他服务器你的数据库的Driver,(此处用的mysql-connecter-java-5.1.39-
- 字符, 字节与字符串字符与字符串字符串内部包含一个字符数组,String 可以和 char[] 相互转换.字符数组变为字符串:public
- 之前学习 Java 的时候,感觉最难做的一件事情就是配置 jdk 的环境。那叫一个困难啊,Path, JAVA_HOME, CLASSPAT
- 今天给大家介绍一下SpringBoot中JPA的一些常用操作,例如:增删改查、分页、排序、事务操作等功能。下面先来介绍一下JPA中一些常用的
- import java.io.BufferedReader; import java.io.IOException;  
- 前言最常用的对字符串操作的类有三个,分别是String,StringBuilder,StringBuffer,下面将会详细的说说这三个类..
- 1、需要引入依赖<dependency> &l
- C#串口模块的使用。使用VS .net框架下WinForm程序应用开发。C#开发的串口通信小工具。相比于QT添加的串口类,WinForm是通
- 如下所示:package com.unionx.wanxue; import java.util.Map; import java.util
- 被kafka-client和springkafka版本坑上周刚刚欢天喜地的在linux上部了kafka,这周打算用spring-boot框架
- 文章来源:csdn 作者:chensheng913对于Java语言,最体贴的一项设计就是它并没有打算让人们为了写程序而写程序——人们也需要考