Mockito 5.0.0 发布总结
Mockito,一个用于Java单元测试的模拟框架,近期发布了5.0.0版本。此次更新带来了多项重要改进和新特性,以下是主要内容和关键信息的总结:
主要更新
- 默认MockMaker切换为
mockito-inline
Mockito 5.0.0将默认的MockMaker接口切换为mockito-inline,以更好地支持未来版本的JDK。这一变化使得Mockito能够直接支持构造函数、静态方法和final类的模拟,而无需额外配置。 - JDK基线升级至Java 11
由于同时支持Java 8和Java 11的成本较高,且JDK中的某些变化(如SecurityManager)难以管理,Mockito 5.0.0将基线从Java 8提升至Java 11。 - 对
final类、静态方法和构造函数的支持
在之前的版本中,Mockito默认不支持对final类的模拟,需要通过添加mockito-inline依赖来实现。从5.0.0开始,mockito-inline成为默认选项,直接支持这些功能。对于Graal VM原生镜像,仍可通过mockito-subclass依赖使用子类MockMaker。
新特性
ArgumentMatcher支持varargsArgumentMatcher接口现在支持可变参数(varargs),特别是针对单个参数的匹配。例如,可以通过any()方法精确匹配一个varargs参数,而不会像之前版本那样匹配任意数量的参数。匹配一个varargs参数:
when(mockedAnswer.count(any())).thenReturn(2);匹配任意数量的varargs参数:
when(mockedAnswer.count(any(String[].class))).thenReturn(2);
依赖配置
Maven依赖:
<dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>5.0.0</version> <scope>test</scope> </dependency>Gradle依赖:
testImplementation 'org.mockito:mockito-core:5.0.0'
其他信息
更多关于Mockito 5.0.0的详细信息,可以参考GitHub上的发布说明。此次更新旨在提升框架的兼容性和功能性,同时简化开发者的使用体验。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。