自動生成 java 測試 mock 物件框架 DataFactory-01-入門使用教程

葉止水發表於2019-03-12

專案簡介

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-正規表示式支援

相關文章