Mockito非存根函数

raj*_*ath 1 java android mocking mockito

我刚刚开始使用Mockito,所以不太熟悉它。我嘲笑这样的对象:

CInjectorFactory mockFactory = mock(CInjectorFactory.class);
Run Code Online (Sandbox Code Playgroud)

现在,如果我不存根某个特定函数,则该函数不会调用原始CInjectorFactory的函数,并且会得到一个“空”值:

public CMainActivityHelper getMainActivityHelper()
Run Code Online (Sandbox Code Playgroud)

这是否意味着仅存根函数可用于模拟对象?那个被嘲笑的对象没有继承被嘲笑的对象的原始功能吗?

谢谢。

obo*_*ain 5

您可以使用 :

CInjectorFactory mockFactory = mock(CInjectorFactory.class, Mockito.CALLS_REAL_METHODS);
Run Code Online (Sandbox Code Playgroud)

然后,未打桩的方法将委托给实际的实现。

来自Mockito.CALLS_REAL_METHODSjavadoc的示例:

Foo mock = mock(Foo.class, CALLS_REAL_METHODS);

 // this calls the real implementation of Foo.getSomething()
 value = mock.getSomething();

 when(mock.getSomething()).thenReturn(fakeValue);

 // now fakeValue is returned
 value = mock.getSomething();
Run Code Online (Sandbox Code Playgroud)