java - PowerMock模拟创建泛型类的新对象

标签 java testing mockito powermock powermockito

我需要模拟创建两个对象

Holder<MyClass1> h1 = new Holder<>();
Holder<MyClass2> h2 = new Holder<>();

我使用 Mockito 和 PowerMock

Holder<MyClass1> mock1 = PowerMockito.spy(new Holder<MyClass1>());
Holder<MyClass2> mock2 = PowerMockito.spy(new Holder<MyClass2>());

PowerMockito.whenNew(Holder.class).withNoArguments().thenReturn(mock1);

如何指定通用类型来模拟两个不同的对象?我的测试需要 2 个模拟。谢谢。

最佳答案

一种选择是使用通配符 '?',如:

 Holder<?> holder = new Holder<>();
 Holder<?> mock1 = PowerMockito.spy(holder);
 Holder<?> mock2 = PowerMockito.spy(holder);
 PowerMockito.whenNew(Holder.class).withNoArguments().thenReturn(mock1);

关于java - PowerMock模拟创建泛型类的新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42558290/

相关文章:

java - android pie 9.0 mobile:org.json.JSONException:类型为java.lang.String的值CLEARTEXT无法转换为JSONObject

java - 如何在屏幕底部显示对话框

testing - 网格点测试 : dealing with problematic cases?

unit-testing - 下一步是编辑触发测试吗?

java - JUnit 入门

java - JMockit 相当于 Mockito doNothing()

java - 对象数组到文本区域

java - #xD;和#13;读写 XML 文件时

unit-testing - 使用mockito模拟GWT EventBus

java - 如何使用 Mockito 在另一个 Mock 类中模拟 Spring 消息资源?