Mockito相当于EasyMock的MockBuilder

时间:2014-08-05 12:54:18

标签: java mockito easymock

EasyMock有一个名为createMockBuilder的函数,有人可以使用该函数指定部分模拟的类。

是否有可能对Mockito做同样的事情?

例如,在EasyMock中,有些人可以执行以下操作:

classA mockedA = EasyMock.
      createMockBuilder(A.class).
      withConstructor(B.class,C.class).
      withArgs(b,null).
      addMockedMethod("print").
      createMock();

是否有可能对Mockito做同样的事情?

1 个答案:

答案 0 :(得分:1)

Mockito与EasyMock有点不同。例如,在EasyMock中,您可以决定要模拟哪些成员函数:

EasyMock.createMockBuilder(A.class).addMockedMethod("foo");

在Mockito中,默认情况下会模拟所有成员函数,您可以指定何时调用基础函数:

A a = Mockito.mock(A.class);
Mockito.when(a.foo()).thenCallRealMethod();

如果您想要使用Mockito仅模拟几个成员函数,我可以考虑两种方法:上面的示例和间谍。

A a = Mockito.spy(A.class);
Mockito.when(a.foo()).thenReturn("ret");
a.bar(); // Calls the real A.bar() function.

使用间谍,默认情况下不会模拟成员函数,但可以有选择地模拟。请在此处查看更多信息:http://site.mockito.org/mockito/docs/current/org/mockito/Mockito.html#spy

相关问题