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) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。