gpt4 book ai didi

java - Mockito 相当于 EasyMock 的 MockBuilder

转载 作者:太空宇宙 更新时间:2023-11-04 06:37:40 31 4
gpt4 key购买 nike

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

是否可以用 Mockito 做同样的事情?

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

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

是否可以用 Mockito 做同样的事情?

最佳答案

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.

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

关于java - Mockito 相当于 EasyMock 的 MockBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25139369/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com