testable-mock/docs/zh-cn/doc/release-note.md
2021-06-11 17:36:43 +08:00

7.2 KiB
Raw Blame History

Release Note

0.6.7

  • 支持所有Mock方法都定义在父类中的空Mock容器类issue-167
  • 修复一处导致参数包含数组下标读取的调用无法Mock的问题issue-171

0.6.6

  • 支持全局参数配置Mock容器的包路径映射便于Mock三方包内的代码issue-105
  • 实现Mock功能的防代码重构机制issue-5
  • 解决Mock类的调试日志内容有时会错位的问题
  • 修复OmniConstructor在某些版本JVM下构造LongInteger类报错的问题

0.6.5

  • 修复OmniConstructor对某些系统类型的兼容问题issue-145
  • 修复PrivateAccessor无法调用仅有数组类型参数方法的问题issue-152
  • 修复当scopeassociated时父类中的Mock方法不生效问题issue-139
  • 修复当scopeassociated时空白的Mock方法会报错的问题issue-154

0.6.4

  • 移除TestableNull类型,让OmniConstructor更轻量
  • 支持JUnit 5的@Nested注解issue-140
  • 修复多处OmniConstructor的兼容性BUG感谢@ddatsh

0.6.3

  • 支持自定义内部Mock容器类名issue-137
  • 支持自定义OmniConstructor字节码增强范围
  • 修复两处可导致OmniConstructor无限递归构建的问题包括issue-138
  • 修复一处非静态方法获取this引用失败导致的下标越界异常issue-136
  • 修复获取构建目录失败导致的空指针异常issue-135

0.6.2

  • 支持通过Properties文件配置TestableAgent
  • 默认禁用OmniConstructor相关的字节码增强
  • 修复OmniConstructor与Spring框架的兼容问题issue-129

0.6.1

  • 自动生成Mock扫描过程日志文件便于自助排查问题
  • 修复一处Spock测试框架的兼容问题 (issue-121)
  • 修复一处Gradle运行单元测试的兼容问题issue-123

0.6.0

  • 增加OmniConstructorOmniAccessor,支持快速构建方法入参
  • 修复一处FRAME FULL字节码处理的异常 (issue-117)
  • 移除@MockWithdiagnose参数支持

0.5.2

  • 支持使用PrivateAccessor访问父类中的私有成员 (issue-91)
  • 修复在较高版本JVM下的非法类型错误 (issue-112)
  • 修复Mock目标为接口类型时的字节码异常 (issue-82)

0.5.1

  • VERBOSE级别诊断日志中使用更易于阅读的方法签名格式
  • 增加对JUnit5参数化测试的支持 (issue-98)
  • 修复在调用参数中包含三元表达式时的Mock异常issue-92
  • 修复使用@MockWith日志输出丢失的BUG (issue-99)

0.5.0

  • 分离测试类与Mock类实现Mock类和Mock方法的复用机制
  • 支持测试类与被测类在不同包路径的情况下实施Mock
  • 支持将Mock方法生效范围缩小为所属测试类的测试用例
  • 使用TransmittableThreadLocal替换基于线程堆栈的Mock上下文识别机制
  • 增加专用于输出诊断信息的@MockDiagnose注解

0.4.12

  • 支持VERBOSE级别的Mocking过程日志增强错误自助排查能力
  • 支持使用verifyTargetOnCompile参数禁用编译期私有目标校验功能
  • 支持通过agent参数指定Mock目标的扫描包范围
  • 修复一处ArrayIndexOutOfBoundsException异常 (issue-52

0.4.11

  • 支持测试类访问与自身包路径不同的被测类的私有成员
  • 增加PrivateAccessor访问的私有方法参数数目检查,提高抗代码重构能力
  • 修复被Mock方法包含数组参数可能导致出错的BUG (issue-48)
  • 修复一处会导致在IntelliJ中构建找不到私有成员的问题

0.4.10

  • 修复在Lambda函数中使用Mock出错的BUGissue-44
  • 修复调用私有方法时参数值不能为null的问题issue-27

0.4.9

  • 修复发起调用的对象不是局部或成员变量时Mock出错的BUG (issue-40)
  • 增加PrivateAccessor访问目标有效性检查,提高抗代码重构能力 (issue-21)

0.4.8

  • 修复赋值语句中的私有方法调用无法访问的BUG (issue-33)
  • 支持在包含SpringRunner的测试中使用Mock (issue-30)
  • @MockMethod注解支持targetClass参数 (issue-24)

0.4.7

  • 修复由于MOCK_CONTEXT引入的堆栈大小错误
  • 修复Windows下的Gradle构建路径错误 (issue-25)

0.4.6

  • 修复一处IINC字节码处理异常
  • 支持使用TestableTool.MOCK_CONTEXT变量为Mock方法注入额外上下文参数 (issue-17)
  • 不再推荐使用TestableTool.TEST_CASE变量来区分测试用例

0.4.5

  • 修复IntelliJ 2020.3+环境下的私有成员访问编译期错误
  • 修复潜在的跨用例初始化空指针异常 (issue-20)
  • 支持将运行期修改后的字节码Dump到本地文件

0.4.4

  • 修复无法访问参数类型包含接口的私有方法的BUG (issue-15)
  • 修复Mock无参数的静态方法会出错的BUG (issue-16)

0.4.3

  • 完善了对私有静态成员的直接访问能力

0.4.2

  • 支持通过Maven插件设置TestableAgent的全局日志级别
  • 修复测试类可能被重复注入多余字节码的BUG
  • 修复一处导致跨行的方法调用Mock报错的BUG

0.4.1

  • @TestableMock注解已弃用,推荐使用@MockMethod@MockConstructor注解

0.4.0

  • 修复由于默认类加载器变化导致JVM 9+运行时Mock出错的BUG
  • 修复多个测试类包含同名Mock方法时潜在的串号问题
  • 重构项目结构,增加用于简化依赖配置的testable-all模块
  • TestableTool中与用户无关的内容迁移到了TestableConst类型

0.3.2

  • 支持在Gradle项目中使用私有成员访问和快速Mock功能
  • 支持通过PrivateAccessor工具类访问私有静态成员

0.3.1

  • 支持使用@MockWith注解打印详细Mock执行过程

v0.3.0

  • 增加without()校验器用于匹配指定Mock方法从未被调用的场景
  • 支持对Mock调用参数验证时使用模糊匹配

v0.2.2

  • 支持对Mock调用参数进行校验
  • 修复JVM 9+的兼容性问题

v0.2.1

  • 支持Mock静态方法
  • 支持Mock Kotlin Companion对象的方法
  • 支持Mock接口或父类引用指向子类实例时的调用

v0.2.0

  • 支持通过TestableTool工具类识别当前的调用上下文
  • 增加testable-maven-plugin模块用于简化运行时JavaAgent配置
  • 不再需要使用@EnableTestable注释显式标记测试类
  • 重名了现有的各种注解,以便与更好的与实际功能对应

v0.1.0

  • 将生成的Agent Jar包自动移到打包工程的Class目录
  • 支持Mock任意类型的方法调用不再局限于被测类中的方法

v0.0.5

  • 使用运行期字节码修改替代预先生成的e.java文件
  • 消除所有对特定单元测试框架的定制逻辑
  • 将测试类中的Testable引用字段从编译期生成改为运行期生成

v0.0.4

  • 改用运行期字节码修改来调用Testable的setup方法
  • 添加TestableUtil工具类用于获取当前测试用例和调用来源

v0.0.3

  • 使用静态方法封装私有成员的访问过程,不在原调用处直接添加反射代码
  • 使用e.java文件替代testable类型,提高代码可读性
  • 引入agent模块,使用运行期字节码修改实现new操作和私有成员调用的Mock

v0.0.2

  • 基于编译期代码修改支持Mock私有成员方法的调用

v0.0.1

  • 首个概念验证版本
  • 基于编译期代码修改支持new操作的Mock和访问被测类私有成员