專案簡介
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}}
複製程式碼
內容每次都隨機。便於基本的測試資料填充。