自动生成 java 测试 mock 对象框架 DataFactory-01-入门使用教程

项目简介

Data-Factory 用于根据对象,随机自动生成初始化信息,避免了手动创建对象的繁琐,便于测试。

特性

  • 8 大基本类型的支持
  • String、Date、金额,日期等常见类型的支持
  • java8 常见时间类的支持
  • 支持 String 和 Number 类型的注解定义
  • 添加 @DataFactory 注解支持
  • 支持 Regex 正则表达式

变更日志

变更日志

核心类讲解

DataUtil 工具类

提供线程安全的方法:

/**
 * 构建结果
 * @param clazz 类型
 * @return 构建结果
 */
public static <T> T build(final Class<T> clazz) {
    IData data = getInstance();
    return (T) data.build(null, clazz);
}

/**
 * 构建结果
 * @param context 执行上下文
 * @param clazz 类型
 * @return 构建结果
 */
public static <T> T build(final IContext context, final Class<T> clazz) {
    IData data = getInstance();
    return (T) data.build(context, clazz);
}

快速开始

准备工作

JDK 1.8+

Maven 3.0+

如果是 idea,测试的时候 Enable Annotation Processing

maven 引入

<dependency>
    <groupId>com.github.houbb</groupId>
    <artifactId>data-factory-core</artifactId>
    <version>0.0.3</version>
</dependency>

演示对象

一个用于演示的普通 java 对象。

public class User {

    private String name;

    private int age;

    private Date birthday;

    private List<String> stringList;

    //S/F 的枚举
    private StatusEnum statusEnum;

    private Map<String, String> map;

    //Getter & Setter
}

使用工具类

@Test
public void buildBeanBaseTest() throws Exception {
    User user = DataUtil.build(User.class);
    System.out.println(user);
}

输出信息如下:

User{name='wZ8CJZtK', age=-564106861, birthday=Wed Feb 27 22:14:34 CST 2019, stringList=[Du4iJkQj], statusEnum=S, map={yA5yDqM=Kdzi}}

内容每次都随机。便于基本的测试数据填充。

拓展阅读

DataFactory-01-注解支持

DataFactory-02-正则表达式支持

原文地址:https://www.cnblogs.com/houbbBlogs/p/10520107.html

时间: 2024-09-30 10:47:01

自动生成 java 测试 mock 对象框架 DataFactory-01-入门使用教程的相关文章

Android AIDL自动生成Java文件测试

/******************************************************************************** * Android AIDL自动生成Java文件测试 * 说明: * 知道有aidl这东西已经挺久了,但是一直没有花时间来系统了解一下其工作机制,现在 * 花点时间一点一点验证一下其功能. * * 2016-5-8 深圳 南山平山村 曾剑锋 ***********************************************

8个超实用的Java测试工具和框架

Java入门 如果你才刚开始接触Java世界,那么要做的第一件事情是,安装JDK--Java Development Kit(Java开发工具包),它自带有Java Runtime Environment(JRE)和JVM(Java运行时环境).它能让你在自己的电脑上编译.运行.测试你的Java程序. 此外,你还需要IDE(集成开发环境).选择有很多,如IntelliJ.Eclipse和NetBeans. Java测试工具 下面是我精选的8个最棒的Java测试工具和框架. 1.Arquillia

mybatis怎样自动生成java类,配置文件?

其实没有什么东西是可以自动生成的,只不过是别人已经写好了,你调用罢了. 所以想要mybatis自动生成java类,配置文件等,就必须要一些配置和一些jar包.当然这些配置也很简单. 为了有个初步的认识,首先我列出了所需要的文件: 其中标红的比较重要.好了,让我们开始吧 1.首先需要在数据库建好表,随便建几个就好. 2.下载mybatis-generator-core包 下载地址:http://search.maven.org/ 然后搜索mybatis-generator-core下载即可 3.下

一键自动生成 java junit 测试代码神器 gen-test-plugin 入门介绍

gen-test-plugin 我们日常编写代码的过程中,经常需要为代码编写测试案例. 随着对代码质量的要求越来越高,很多公司开始通过代码的测试覆盖率作为 QA 的一个评定指标. 本框架可以一键生成所有代码对应的 junit 测试案例,为你的人生节约宝贵的时间. 特性 支持生成 junit4/junit5 支持 jdk7 支持自定义生成模板 更新记录 更新记录 gen-test 用于生成 Junit4/Junit5 单元测试. 引入 <plugin> <groupId>com.gi

mybatis自动生成java代码

SSM框架没有DB+Record模式,写起来特别费劲,只能用下面的方法勉强凑合. 上图中,*.jar为下载的,src为新建的空白目录,.xml配置如下. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"

Ogre 编辑器三(自动生成与更新Ogre对象编辑界面)

最开始设计这个编辑器时,其中一个要求就是能在运行过程中,通过UI来更新各对象,这样我们就能明确每个Ogre对象更新其属性影响的渲染效果.比如点光源,方向光源,聚光灯各属性与效果,深度测试开启与关闭,深度比较方式影响的效果等等.如下先看效果图: 这个位置没有用上一篇天龙的场景,主要是图片大小限制,场景复杂后,生成的gif图片太大. 这个功能当时我主界面完成后,就准备做的,但是当时一时想不到好的方案,如果针对每个Ogre属性来生成UI,然后关联每个对象,再想想后续如果要修改其中的字段属性或是位置,这

使用google autoservice 自动生成java spi 描述文件

spi 是一种服务发现的标准,对于开发中我们通常需要编写 META-INF/services 文件夹中定义的类. google auto 中的autoservice 可以帮助我们生成对应的配置,很方便 环境准备 项目结构 ├── pom.xml └── src ├── main │ ├── java │ │ └── com │ │ └── dalong │ │ ├── spi │ │ │ └── TranslationService.java │ │ └── spimpl │ │ ├── Bin

自动生成数学题型三 (框架Struts2)题型如 a+b=c(a、b、c都为分数)

1. 约分分数 1.1 保留质数 1 /** 2 * 将数值放入到fraction数组中 3 * @param fen 简要放的 int类型数值 4 */ 5 public void fenshu(int fen) { 6 fraction[i++] = fen; 7 } 1.2  定义int类型数组 1 /** 2 * 获得int 类型的数组,fraction对象 3 */ 4 public void getFraction() { 5 fraction = new int[nums]; 6

运用Hibernate-Tools自动生成Java类和schema时,出现not found while looking for property...异常

问题描述: 在使用Hibernate-tools时出现not found while looking for property...(具体信息省略). 问题分析: 我找到出错对应的hbm.xml文件,其中id的定义是这样的: <id name="commentId" column="COMMENT_ID"> <meta attribute="scope-set">private</meta> <!-- 适