概述
单元测试时,总需要生成一些测试数据,String、Int、float等,甚至是复杂对象。
<dependency>
<groupId>com.github.jsonzou</groupId>
<artifactId>jmockdata</artifactId>
<version>4.2.0</version>
</dependency>
jmockdata是一个第三方的jar包,我最近使用过一些,感觉还不错。一下列举一些常见用法:
1、基本使用:
String str = JMockData.mock(String.class);
int i = JMockData.mock(int.class);
Integer num = JMockData.mock(Integer.class);
Person p = JMockData.mock(Person.class);
2、特殊使用——泛型:
如果模拟有泛型的类,如List,则写法如下:
List ps = JMockData.mock(new TypeReference(){});
注:这个jar包对于泛型有一定的支持,但有些漏洞,包装类与被包装类的泛型都相同,如Page中T指示成员类,Person中T指示id字段的类型,则Page<Person>在mock时会因为’T’的重复而无法生成模拟数据。
3、排除类中特定字段:
MockConfig config = new MockConfig();
config.excludes(Person.class, "id");// 排除id字段
Person p = JMockData.mock(Person.class, config);
4、为特定字段自定义生成方法:
如,想让生成的所有类,状态字段为’1’、有效,则如下操作,当然Integer也可以是某个具体的POJO类。
MockConfig config = new MockConfig();
final DataConfig statusDC = config.subConfig("status");
config.registerMocker(new IntegerMocker() {
@Override
public Integer mock(DataConfig mockConfig) {
// 修改status字段为固定值
if (statusDC == mockConfig) {
return 1;
}
return super.mock(mockConfig);
}
}, Integer.class);
Person p = JMockData.mock(Person.class, config);
最后
以上就是可耐蜡烛为你收集整理的jmockdata——java单元测试利器的全部内容,希望文章能够帮你解决jmockdata——java单元测试利器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复