在AEM中,有一个Java USE类,其中存在以下代码:getWcmMode()。isEdit()
现在,我正在努力使用Test java类中的mockito来模拟这个对象。我们有什么方法可以做到吗?
答案 0 :(得分:2)
getWcmMode()
是WCMUsePojo
中的最终方法,默认情况下,mockito不支持模拟最终方法。
您必须通过在类路径中创建名为org.mockito.plugins.MockMaker
的文件(将其放在test resources / mockito-extensions文件夹中)并将以下单行添加来启用它
mock-maker-inline
然后您可以像往常一样使用when
指定函数返回值 -
@Test
public void testSomeComponetnInNOTEDITMode() {
//setup wcmmode
SightlyWCMMode fakeDisabledMode = mock(SightlyWCMMode.class);
when(fakeDisabledMode.isEdit()).thenReturn(false);
//ComponentUseClass extends WCMUsePojo
ComponentUseClass fakeComponent = mock(ComponentUseClass.class);
when(fakeComponent.getWcmMode()).thenReturn(fakeDisabledMode);
assertFalse(fakeComponent.getWcmMode().isEdit());
//do some more not Edit mode testing on fakeComponent.
}