如何使用mockito模拟getWcmMode()

时间:2017-10-12 22:29:19

标签: aem wcm

在AEM中,有一个Java USE类,其中存在以下代码:getWcmMode()。isEdit()

现在,我正在努力使用Test java类中的mockito来模拟这个对象。我们有什么方法可以做到吗?

1 个答案:

答案 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.

  }