Releases: ForteScarlet/Mock.java
v1.9.3 fix bug
v1.9.1 fix bug
v1.9.1(2020/07/30)
修复Mock.set(...)
使用Map类型的时候会报空指针的问题
v1.9.0 optimization
v1.9.0
优化实例的获取效率(尤其是以获取中文内容为主的时候)
效率提升约3~4倍左右。
测试参考:100w条实例获取,getList(100w)约16s, getListParallel(100w)约7s
v1.8.0 udpdate
v1.8.0
增加对某个类的父类字段的处理
#I1NLT4
优化mock值的获取效率(大概提升了30倍),但是当值为字符串的时候,默认情况下不会再尝试将其视为JS脚本执行了。
如果想要开启JS脚本尝试功能,请使用静态配置类MockConfiguration.setEnableJsScriptEngine(true)
#I1NLWA
Mock
中增加三个setAndGet(...)
方法,故名思意,整合先set后get的流程。
v1.7.1 fix bug
v1.7.1(2020/04/11)
修复由于我的疏忽,导致在使用注解创建映射而映射类中存在没有注解的字段的时候,会出现空指针异常的问题。
fix gitee issue #I1E46D
v1.7.0 update
v1.7.0(2020/04/01)
- 增加一个“#函数”, 其映射已经添加进Mock中的映射名称。例如:
Map<String, Object> map = new HashMap<>();
map.put("name", "@name");
// set 'name_map'
Mock.set("name_map", map);
Map<String, Object> userMap = new HashMap<>();
userMap.put("mapList", "#name_map");
//set 'user_map'
Mock.set("user_map", userMap);
MockObject<Map> userMapMock = Mock.get("user_map");
// show
System.out.println(userMapMock.getOne());
- 增加对于
Map
中,value类型为Class
类型的参数的解析。类似于上述的“#函数”,只不过参数不是'#xxx'
而是一个指定的Class
对象。
例如:
Map<String, Object> map = new HashMap<>();
map.put("name", "@name");
map.put("user", User.class); // will get User from Mock
map.put("userList|1-2.0", User.class); // will get User list from Mock
- 增加针对于
List
类型参数的规则修改。
以前版本,假如一个字段叫做users
, 是一个List类型,此时,我填入的参数为:
map.put("users|1-2.3-4", otherMap);
这个时候,区间参数中的3-4
将会被忽略不计。
当前版本,由于加入了Class解析
与#函数
,使得各种不同类之间的嵌套成为可能(甚至是自己嵌套自己)
此时,我修改了List
类型的字段的区间参数规定,以上述例子为例,现在3-4
并不会被忽略了,List结果的最终输出长度,会从1-2
这个区间和3-4
这个区间中随机选择一个。
也就是说,假如你写了:
map.put("users|1000.0", User.class);
那么最终的结果里,users
字段的长度,要么是1000,要么是0。
而如果你写了:
map.put("users|5-10.200-300", User.class);
那么最终的结果里,users
字段的长度,要么在5-10之间,要么在200-300之间。
v1.6.0 update
增加功能:映射扫描、映射代理
删除某些无用代码
删除文档开始的一些废话
简单改善部分代码
增加一个注解@MockBean
, 使用在类上,当使用包扫描功能的时候,只会扫描被标记了此注解的类。配合两个注解映射使用。
注解@MockValue
增加参数:String param() default ""
、Class<?> valueType() default String.class
注解@MockArray
增加参数:String param() default ""
Mock
中增加了一个方法scan(...)
以及部分重载方法,用来根据@MockBean
注解来进行扫描与批量的注解映射注册。返回值为加载后的class列表
增加一个注解@MockProxy
标记接口代理中,一些需要特殊处理的抽象方法,例如返回值为Map或者忽略参数等。
Mock
中增加了一个方法proxy(...)
以及部分重载方法来获取mock接口代理。