无法使用 Mockito 3.8 模拟 aem 核心组件

Cannot mock aem core component with Mockito 3.8

我正在尝试使用 mockito core 3.8 模拟 Teaser class(public 界面),但我做不到。

我已经 JAVA 11,这是以下错误:

org.mockito.exceptions.base.MockitoException: 
Mockito cannot mock this class: interface com.adobe.cq.wcm.core.components.models.Teaser.

Mockito can only mock non-private & non-final classes.
If you're not sure why you're getting this error, please report to the mailing list.


Java               : 11
JVM vendor name    : Oracle Corporation
JVM vendor version : 11.0.12+8-LTS-237
JVM name           : Java HotSpot(TM) 64-Bit Server VM
JVM version        : 11.0.12+8-LTS-237
JVM info           : mixed mode
OS name            : Windows 10
OS version         : 10.0


Underlying exception : java.lang.IllegalStateException: Type not found: com.adobe.cq.wcm.core.components.internal.jackson.ComponentDataModelSerializer

这里发生了什么?

我终于找到了解决办法。 问题是我的项目没有 wcm 核心组件依赖性。由于 AEMaaCS 将该依赖项作为一个包包含在内,因此我们不需要在我们的项目中包含该依赖项。

我最终添加了依赖项,但只是为了范围=测试。