2017-10-12 65 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. 

    }