我正在尝试模拟唱片班
@Test
public void testRecord() {
record Rec(){}
Mockito.mock(Rec.class);
}
但是它给出了错误
org.mockito.exceptions.base.MockitoException:
Cannot mock/spy class Rec
Mockito cannot mock/spy because :
- final class
at ...
这当然有道理。
从 5.x 版本开始,mockito 将其默认的模拟运行器切换为mockito-inline。
Mockito 5 将默认的mockmaker切换为mockito-inline,现在需要Java 11(参见Mockito GitHub主页)
使用mockito 5.x,如果不能,请按照下面之前的答案操作:
正如错误消息所示,您无法使用默认的 Mockito 来模拟最终类。
但是社区提出了
mockito-inline
,这是一个带来实验性功能的扩展,例如模拟最终类和方法或静态方法。
只需将其添加到您的
pom.xml
中即可正常使用Mockito。
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-inline</artifactId>
<scope>test</scope>
</dependency>
对于 Gradle:
testImplementation 'org.mockito:mockito-inline:4.11.0'