Skip to content

Releases: ForteScarlet/Mock.java

v1.9.3 fix bug

03 Oct 19:43
Compare
Choose a tag to compare

v1.9.1 fix bug

30 Jul 08:52
Compare
Choose a tag to compare

v1.9.1(2020/07/30)

修复Mock.set(...)使用Map类型的时候会报空指针的问题

v1.9.0 optimization

29 Jul 17:07
Compare
Choose a tag to compare

v1.9.0

优化实例的获取效率(尤其是以获取中文内容为主的时候)
效率提升约3~4倍左右。
测试参考:100w条实例获取,getList(100w)约16s, getListParallel(100w)约7s

v1.8.0 udpdate

29 Jul 16:43
Compare
Choose a tag to compare

v1.8.0

see gitee 1.8.0 releases

增加对某个类的父类字段的处理
#I1NLT4

优化mock值的获取效率(大概提升了30倍),但是当值为字符串的时候,默认情况下不会再尝试将其视为JS脚本执行了。
如果想要开启JS脚本尝试功能,请使用静态配置类MockConfiguration.setEnableJsScriptEngine(true)
#I1NLWA

Mock中增加三个setAndGet(...)方法,故名思意,整合先set后get的流程。

v1.7.1 fix bug

11 Apr 15:06
Compare
Choose a tag to compare

v1.7.1(2020/04/11)

修复由于我的疏忽,导致在使用注解创建映射而映射类中存在没有注解的字段的时候,会出现空指针异常的问题。
fix gitee issue #I1E46D

v1.7.0 update

01 Apr 15:07
Compare
Choose a tag to compare

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

25 Mar 10:47
Compare
Choose a tag to compare

增加功能:映射扫描、映射代理

删除某些无用代码
删除文档开始的一些废话
简单改善部分代码
增加一个注解@MockBean, 使用在类上,当使用包扫描功能的时候,只会扫描被标记了此注解的类。配合两个注解映射使用。
注解@MockValue增加参数:String param() default ""Class<?> valueType() default String.class
注解@MockArray增加参数:String param() default ""
Mock中增加了一个方法scan(...)以及部分重载方法,用来根据@MockBean注解来进行扫描与批量的注解映射注册。返回值为加载后的class列表

增加一个注解@MockProxy 标记接口代理中,一些需要特殊处理的抽象方法,例如返回值为Map或者忽略参数等。
Mock中增加了一个方法proxy(...)以及部分重载方法来获取mock接口代理。