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) {
}
...
}
- 使用 power mockito
- 已尝试 (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(...);
谢谢
抱歉,如果已经讨论过了,但我没有找到任何解决方案。
问题 - 试图模拟我的 Class 某种类型的对象(例如 class)
编写方法 xyz() 的测试用例,我需要在下面的代码片段中模拟 SomeClass.class
void xyz() {
..
MyOtherClass.staticMethod(SomeClass.class);
..
}
MyOtherClass {
..
<T> T staticMethod(Class<T> clazz) {
}
...
}
- 使用 power mockito
- 已尝试 (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(...);
谢谢