Data-Factory 用於根據對象,隨機自動生成初始化信息,避免了手動建立對象的繁瑣,便於測試。java
8 大基本類型的支持git
String、Date、金額,日期等常見類型的支持github
java8 常見時間類的支持正則表達式
支持 String 和 Number 類型的註解定義安全
添加 @DataFactory
註解支持bash
支持 Regex 正則表達式maven
變動日誌ide
提供線程安全的方法:工具
/** * 構建結果 * @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
。
<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}}
複製代碼
內容每次都隨機。便於基本的測試數據填充。