无法使用 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 将该依赖项作为一个包包含在内,因此我们不需要在我们的项目中包含该依赖项。
我最终添加了依赖项,但只是为了范围=测试。
我正在尝试使用 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 将该依赖项作为一个包包含在内,因此我们不需要在我们的项目中包含该依赖项。
我最终添加了依赖项,但只是为了范围=测试。