• 【测试】 Java如何优雅的生成测试数据


    前言


    在日常的测试中,我们经常需要提前准备一大堆测试数据,用来验证业务逻辑。当然对于简单的数据类型完全可以通过 JDK 自带的 Random 类来实现。但是对于一个比较复杂的类,或者参数的格式有特殊要求的时候,Random 就不适用了,这个时候就需要借助一些能够生成测试数据的框架。

    相关框架


    我在实际调研中,找到了 2 个在个人看来还不错的生成框架,他们分别是:

    1. jmockdata[1]

    2. java-faker[2]


    下面我将一一介绍这些框架的优缺点以及适用场景。话不多说,直接开始撸代码。

    JmockData


    首先出场的是 JmockData 框架,它是官方定义如下:

    一款实现模拟JAVA类型或对象的实例化并随机初始化对象的数据的工具框架。

    依赖

    1.   <dependency>
    2.      <groupId>com.github.jsonzou</groupId>
    3.      <artifactId>jmockdata</artifactId>
    4.      <version>4.2.0</version>
    5.    </dependency>

    基础类型数据生成

    1.     @Test
    2.     public void testBaseType(){
    3.         // 基础数据类型
    4.         System.out.println(JMockData.mock(byte.class));
    5.         System.out.println(JMockData.mock(int.class));
    6.         System.out.println(JMockData.mock(long.class));
    7.         System.out.println(JMockData.mock(double.class));
    8.         System.out.println(JMockData.mock(float.class));
    9.         System.out.println(JMockData.mock(String.class));
    10.         System.out.println(JMockData.mock(BigDecimal.class));
    11.         // 基础数据类型的数组
    12.         System.out.println(JMockData.mock(byte[].class));
    13.         System.out.println(JMockData.mock(int[].class));
    14.         System.out.println(JMockData.mock(long[].class));
    15.         System.out.println(JMockData.mock(double[].class));
    16.         System.out.println(JMockData.mock(float[].class));
    17.         System.out.println(JMockData.mock(String[].class));
    18.         System.out.println(JMockData.mock(BigDecimal[].class));
    19.     }

    运行结果

    1. 0
    2. 2610
    3. 3401
    4. 8582.18
    5. 7194.44
    6. 5Xu7
    7. 9051.92
    8. [B@7fbe847c
    9. [I@41975e01
    10. [J@c2e1f26
    11. [D@dcf3e99
    12. [F@6d9c638
    13. [Ljava.lang.String;@7dc5e7b4
    14. [Ljava.math.BigDecimal;@1ee0005

    JavaBean 类型数据生成

    1.     /**
    2.      * java bean 测试
    3.      */
    4.     @Test
    5.     public void testJavaBean(){
    6.         Person mock = JMockData.mock(Person.class);
    7.         System.ou
  • 相关阅读:
    Gitlab自动化测试的配置
    玩全栈,做自己喜欢做的事,写自己喜欢写的代码
    【LeetCode-中等】33.搜索旋转排序数组 - 二分法
    sqlserver根据DATEDIFF()函数计算年龄、月龄、天数
    flutter创建不同样式的按钮,背景色,边框,圆角,圆形,大小都可以设置
    吉时利 Keithley 2700数据采集器技术参数
    SSL VPN综合实验
    【flutter no devices】
    031-JAVA窗体图形图像处理(Toolkit工具类及Font类及事件处理综合应用)
    SpringMVC(Rest+映射请求数据+模型数据+视图和视图解析器)
  • 原文地址:https://blog.csdn.net/m0_72885838/article/details/126690445