小言_互联网的博客

老板居然让我用Java造假数据

384人阅读  评论(0)

1. 前言

老板说,明天甲方要来看产品,你得搞点数据,而且数据必须是“真”的,演示效果要好看一些,这样甲方才会采购咱们的产品。一般开发接到这种过分要求都不会很乐意去做,这完全是体力劳动了,而且很棘手。今天胖哥教你一招,让你做出逼真的“假”数据。

2. javafaker

这张图大家都很熟悉吧。我们Java也能搞Fake,它就是Javafaker,专门用来制作仿真数据。你只需要在项目中引入:


   
  1.         <dependency>
  2.             <groupId>com.github.javafaker</groupId>
  3.             <artifactId>javafaker</artifactId>
  4.             <version> 1.0 .2</version>
  5.         </dependency>

忘记说了它主要的使用场景就是为了制造仿真测试数据,而并不是用来造假。

然后胖哥来演示一下它的用法,先定义一个 Java Bean :


   
  1. /**
  2.  * User info.
  3.  *
  4.  * @author felord.cn
  5.  * @since 10 :50
  6.  */
  7. @Data
  8. public class UserInfo {
  9.    /**
  10.    * 真实姓名
  11.    */
  12.   private String realName;
  13.    /**
  14.    * 手机
  15.    */
  16.   private String cellPhone;
  17.    /**
  18.    * 大学
  19.    */
  20.   private String universityName;
  21.    /**
  22.    * 城市
  23.    */
  24.   private String city;
  25.    /**
  26.    * 地址
  27.    */
  28.   private String street;
  29. }

然后声明一个Faker对象,你可以根据需要进行本地化声明,如果是使用中国的:

        Faker fakerWithCN = new Faker(Locale.CHINA);

你要是想造点美帝的数据就改成这样:

        Faker fakerWithCN = new Faker(Locale.US);

这里我们使用中国来生成模拟 10 条仿真数据:


   
  1. for ( int i =  0; i <  10; i++) {
  2.     UserInfo userInfo =  new UserInfo();
  3.     userInfo.setRealName(fakerWithCN.name().fullName());
  4.     userInfo.setCellPhone(fakerWithCN.phoneNumber().cellPhone());
  5.     userInfo.setCity(fakerWithCN.address().city());
  6.     userInfo.setStreet(fakerWithCN.address().streetAddress());
  7.     userInfo.setUniversityName(fakerWithCN.university().name());
  8.     System.out. println( "userInfo = " + userInfo);
  9. }

我们来看下结果:

javafaker生成的仿真数据

是不是看上去跟真的一样,但是一定要用到正途,不要用到歪门邪道上。

3. 总结

用了javafaker之后我们不但可以完成老板提出的需求,而且可以减少我们平常使用测试的时候用各种test填充的局面。好了今天的分享就到这里。我是 码农小胖哥,多多关注,获取更多有用的编程干货。

Spring Cloud 2020.0发布,移除了Hystrix、Zuul等Netflix组件

2020-12-24

Spring 的这个工具类操作对象类型真是方便

2020-12-23

如何在Swagger2或Swagger3中增加Json Web Token

2020-12-22


转载:https://blog.csdn.net/qq_35067322/article/details/111714107
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场