自动生成测试数据

eunit

eunit是一个工具包。可以根据指定的规则生成符合条件的测试数据。

依赖

1
2
3
4
5
<dependency>
<groupId>com.github.ofofs</groupId>
<artifactId>eunit</artifactId>
<version>${eunit.version}</version>
</dependency>

可以到http://mvnrepository.com/search?q=eunit查看最新版本。

使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.github.ofofs.eunit.test;

import com.github.ofofs.eunit.DataFactory;
import com.github.ofofs.eunit.test.model.User;

/**
* @author kangyonggan
* @since 2018/7/21 0021
*/
public class UserSimpleTest {

public static void main(String[] args) {
User user = DataFactory.instance(User.class);
System.out.println(user);
}

}

输出

1
User{id=8462870299209684556, username='kolH4D8roMdK2Kpnq', password='Xace7HK'}

规则

在User的字段上加上@Rule注解,可以指定字段生成规则,目前有下列规则可用:

  • 字符串型:可以指定最小长度minLength、最大长度maxLength和正则表达式regex。
  • 数字类型:可以指定最小值min、最大值max和精度precision。

说明: 目前只能生成八大基本数据类型和String、Date、BigDecimal。其他引用类型暂时不会生成,后续会考虑。

想法

  • 提供更多细腻的规则。
  • 怎么解实体类和规则注解的耦合?
  • 如何实现多规则?
  • 规则之间如何依赖?
  • 如何优雅的自定义规则?

在实现想法的基础上要考虑到用户体验,如果设计的不优雅不好用宁愿不要。