2017-10-12 129 views
0

在AEM嘲笑getWcmMode(),有一個Java使用類,其中下面的代碼存在getWcmMode()。isEdit()如何使用的Mockito

現在,我奮力嘲笑在測試Java使用的Mockito這個對象類。有什麼辦法可以做到嗎?

+0

你試過了什麼?你有錯誤嗎? – awd

+0

在getWcmMode()處獲取空指針。 – user2581831

回答

2

getWcmMode()WCMUsePojo中的最後一種方法,mockito默認不支持嘲笑final方法。

你將不得不通過創建一個在類路徑(把它放到測試資源/的Mockito的擴展文件夾)命名org.mockito.plugins.MockMaker文件來啓用它,並把下面一行

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. 

    }