Mockito:模拟 class<T> 对象

Mockito: Mock class<T> object

抱歉,如果已经讨论过了,但我没有找到任何解决方案。

问题 - 试图模拟我的 Class 某种类型的对象(例如 class)

编写方法 xyz() 的测试用例,我需要在下面的代码片段中模拟 SomeClass.class

void xyz() {
..
MyOtherClass.staticMethod(SomeClass.class);
..
}

MyOtherClass {
..
<T> T staticMethod(Class<T> clazz) {
}
...
}
  1. 使用 power mockito
  2. 已尝试 (Class) Mockito.mock(Class.class),但无效。

我希望上面的代码能解决问题。非常感谢任何帮助。

非常感谢!

尝试Mockito.mock(Class<T>.class);

是的,已找到解决方案:

运行 使用 PowerMock运行ner 的测试用例,注释如下:

@RunWith(PowerMockRunner.class)
@PrepareForTest({ MyOtherClass.class, MainClass.class})

模拟您的静态方法并提供您的 class 特定类型的预期对象:

PowerMockito.mockStatic(MyOtherClass.class);
PowerMockito.when(MyOtherClass.staticMethod((Class<SomeClass>) SomeClass.class)).thenReturn(...);

谢谢