# jmockdata
**Repository Path**: hm-learn/jmockdata
## Basic Information
- **Project Name**: jmockdata
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-06-21
- **Last Updated**: 2024-05-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 开源项目不容易,如果觉得本项目对您的工作还是有帮助的话,请在帮忙 *
# Jmockdata
[](https://www.travis-ci.org/jsonzou/jmockdata)
[](https://coveralls.io/github/jsonzou/jmockdata)
[](http://mvnrepository.com/artifact/com.github.jsonzou/jmockdata)
[](http://www.apache.org/licenses/LICENSE-2.0.html)
Jmockdta是一款实现模拟JAVA类型或对象的实例化并随机初始化对象的数据的工具框架。

The plugin of Jmockdata what through random algorithm mock java data.
Jmockdata插件通过随机算法模拟Java数据.

## Feature
* 支持丰富多样的数据类型模拟,包括:Java基本类型、字符串、枚举、日期、数组、多维数组、集合[List|Set|Map]、枚举、Java对象等
* 支持通过正则表达式反向模拟数据
* 支持泛型
* 支持继承
* 支持循环依赖、自依赖(手动开启enabledCircle)
* 支持忽略字段
* 支持改变mockConfig来自定义模拟数据策略
* 支持自定义Mocker类
* 支持JDK1.8+
## Download
>
### _Jmockdata-4.2.0_
#### Jar
> [Jmockdata-4.2.0](http://repo.maven.apache.org/maven2/com/github/jsonzou/jmockdata/4.2.0/jmockdata-4.2.0.jar)
#### Maven
```
com.github.jsonzou
jmockdata
4.2.0
```
#### Gradle
```
compile group: 'com.github.jsonzou', name: 'jmockdata', version: '4.2.0'
```
#### 更多已发布版本下载
> [https://github.com/jsonzou/jmockdata/releases](https://github.com/jsonzou/jmockdata/releases)
## History version
- [1.0](https://github.com/jsonzou/jmockdata/releases/tag/jmockdata-1.0-RELEASE)
- [2.0](https://github.com/jsonzou/jmockdata/releases/tag/jmockdata-2.0-RELEASE)
- [2.1](https://github.com/jsonzou/jmockdata/releases/tag/jmockdata-2.1-RELEASE)
- [2.2](https://github.com/jsonzou/jmockdata/releases/tag/jmockdata-2.2-RELEASE)
- [2.3](https://github.com/jsonzou/jmockdata/releases/tag/jmockdata-2.3-RELEASE)
- [2.4](https://github.com/jsonzou/jmockdata/releases/tag/jmockdata-2.4-RELEASE)
- [3.0.0](https://github.com/jsonzou/jmockdata/releases/tag/jmockdata-3.0.0-RELEASE)
- [3.0.1](https://github.com/jsonzou/jmockdata/releases/tag/jmockdata-3.0.1-RELEASE)
- [3.1.0](https://github.com/jsonzou/jmockdata/releases/tag/jmockdata-3.1.0-RELEASE)
- [4.0.0](https://github.com/jsonzou/jmockdata/releases/tag/jmockdata-4.0.0-RELEASE)
- [4.0.1](https://github.com/jsonzou/jmockdata/releases/tag/jmockdata-4.0.1-RELEASE)
- [4.1.0](https://github.com/jsonzou/jmockdata/releases/tag/jmockdata-4.1.0-RELEASE)
- [4.1.1](https://github.com/jsonzou/jmockdata/releases/tag/jmockdata-4.1.1-RELEASE)
- [4.1.2](https://github.com/jsonzou/jmockdata/releases/tag/jmockdata-4.1.2-RELEASE)
- [4.2.0](https://github.com/jsonzou/jmockdata/releases/tag/jmockdata-4.2.0-RELEASE)
## Usage
### 基础类型
支持以下基础类型直接模拟
| 描述 | 类型 |
| ------ | ---------------------------------------- |
| 基础类型 | ```byte``` ```boolean``` ```char``` ```short``` ```int``` ```long``` ```float``` ```double``` |
| 包装类型包装 | ```Byte``` ```Boolean``` ```Character``` ```Short``` ```Integer``` ```Long``` ```Float``` ```Double``` |
| 常用类型 | ```BigDecimal``` ```BigInteger``` ```Date``` ```LocalDateTime``` ```LocalDate``` ```LocalTime``` ```java.sql.Timestamp``` ```String``` ```Enum``` |
| 多维数组 | 以上所有类型的多维数组 如:```int[]``` ```int[][]``` ```int[][][]``` .... etc. |
```java
//基本类型模拟
int intNum = JMockData.mock(int.class);
int[] intArray = JMockData.mock(int[].class);
Integer integer = JMockData.mock(Integer.class);
Integer[] integerArray = JMockData.mock(Integer[].class);
//常用类型模拟
BigDecimal bigDecimal = JMockData.mock(BigDecimal.class);
BigInteger bigInteger = JMockData.mock(BigInteger.class);
Date date = JMockData.mock(Date.class);
String str = JMockData.mock(String.class);
```
### JAVA对象
模拟bean,被模拟的数据最好是plain bean,通过反射给属性赋值。
支持模拟继承而来的属性。
```java
//模拟Java对象
public class BasicBean {
//基本类型
private byte byteNum;
private boolean booleanNum;
private char charNum;
private short shortNum;
private int integerNum;
private long longNum;
private float floatNum;
private double doubleNum;
//基本包装类型
private Byte byteBoxing;
private Boolean booleanBoxing;
private Character charBoxing;
private Short shortBoxing;
private Integer integerBoxing;
private Long longBoxing;
private Float floatBoxing;
private Double doubleBoxing;
//基本类型数组
private byte[] byteNumArray;
private boolean[] booleanNumArray;
private char[] charNumArray;
private short[] shortNumArray;
private int[] integerNumArray;
private long[] longNumArray;
private float[] floatNumArray;
private double[] doubleNumArray;
//基本类型二维数组
private byte[][] byteNumDoubleArray;
private boolean[][] booleanNumDoubleArray;
private char[][] charNumDoubleArray;
private short[][] shortNumDoubleArray;
private int[][] integerNumDoubleArray;
private long[][] longNumDoubleArray;
private float[][] floatNumDoubleArray;
private double[][] doubleNumDoubleArray;
//基本包装类型数组
private Byte[] byteBoxingArray;
private Boolean[] booleanBoxingArray;
private Character[] charBoxingArray;
private Short[] shortBoxingArray;
private Integer[] integerBoxingArray;
private Long[] longBoxingArray;
private Float[] floatBoxingArray;
private Double[] doubleBoxingArray;
//基本包装类型二维数组
private Byte[][] byteBoxingDoubleArray;
private Boolean[][] booleanBoxingDoubleArray;
private Character[][] charBoxingDoubleArray;
private Short[][] shortBoxingDoubleArray;
private Integer[][] integerBoxingDoubleArray;
private Long[][] longBoxingDoubleArray;
private Float[][] floatBoxingDoubleArray;
private Double[][] doubleBoxingDoubleArray;
//其他常用类型
private BigDecimal bigDecimal;
private BigInteger bigInteger;
private Date date;
private String string;
//其他常用类型数组
private BigDecimal[] bigDecimalArray;
private BigInteger[] bigIntegerArray;
private Date[] dateArray;
private String[] stringArray;
//其他常用类型二维数组
private BigDecimal[][] bigDecimalDoubleArray;
private BigInteger[][] bigIntegerDoubleArray;
private Date[][] dateDoubleArray;
private String[][] stringDoubleArray;
//集合、MAP数组
private List[] listArray;
private Set[] setArray;
private Map[] mapArray;
//集合、MAP二维数组
private List[][] listDoubleArray;
private Set[][] setDoubleArray;
private Map[][] mapDoubleArray;
//集合、MAP二维数组(内部数组)
private List[][] listInnerArrayDoubleArray;
private Set[][] setInnerArrayDoubleArray;
private Map[][] mapInnerArrayDoubleArray;
//集合、MAP二维数组(内部二维数组)
private List[][] listInnerDoubleArrayDoubleArray;
private Set[][] setInnerDoubleArrayDoubleArray;
private Map[][] mapInnerDoubleArrayDoubleArray;
//LIST
private List byteBoxingList;
private List booleanBoxingList;
private List charBoxingList;
private List shortBoxingList;
private List integerBoxingList;
private List longBoxingList;
private List floatBoxingList;
private List doubleBoxingList;
private List bigDecimalList;
private List bigIntegerList;
private List dateList;
private List stringList;
private List> stringListList;
private List> stringSetList;
private List