【发布时间】:2021-08-02 20:43:55
【问题描述】:
由于 Mockito 支持模拟静态和模拟构造,我正在尝试更新现有代码以删除 PowerMockito 并用 Mockito 替换它。
我知道您可以执行以下操作:
assertEquals("foo", new Foo().method());
try (MockedConstruction mocked = mockConstruction(Foo.class)) {
Foo foo = new Foo();
when(foo.method()).thenReturn("bar");
assertEquals("bar", foo.method());
verify(foo).method();
}
assertEquals("foo", new Foo().method());
Foo 是一个新的模拟对象。但是使用 PowerMockito 的 whenNew,您可以返回一个特定的模拟对象。
PowerMockito.whenNew(Foo.class).withAnyArguments().thenReturn(mockedFoo);
有没有办法指定我想从 Mockito.mockConstruction 返回什么模拟对象?
【问题讨论】:
-
不要试图模拟
new。修复你的底层代码。
标签: java unit-testing mockito powermockito