Aem 如何使用mockito模拟getWcmMode()
在AEM中,有一个Java使用类,其中存在以下代码getWcmMode().isEdit() 现在,我正在努力在测试java类中使用mockito模拟这个对象。有什么方法可以做到这一点吗?Aem 如何使用mockito模拟getWcmMode(),aem,wcm,Aem,Wcm,在AEM中,有一个Java使用类,其中存在以下代码getWcmMode().isEdit() 现在,我正在努力在测试java类中使用mockito模拟这个对象。有什么方法可以做到这一点吗?getWcmMode()是WCMUsePojo中的最终方法,默认情况下mockito不支持模拟最终方法 您必须通过在classpath中创建一个名为org.mockito.plugins.MockMaker的文件来启用它(将其放入test resources/mockito extensions文件夹),并放置
getWcmMode()
是WCMUsePojo
中的最终方法,默认情况下mockito不支持模拟最终方法
您必须通过在classpath中创建一个名为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.
}
getWcmMode()
是WCMUsePojo
中的最终方法,默认情况下mockito不支持模拟最终方法
您必须通过在classpath中创建一个名为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.
}
你试了什么?您是否收到错误?在getWcmMode()处获取空指针。您尝试了什么?您是否收到错误?在getWcmMode()处获取空指针。