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

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

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

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

MyOtherClass {
..
<T> T staticMethod(Class<T> clazz) {
}
...
}
  • 使用电源模型
  • 尝试过(Class)Mockito.mock(Class.class),它不起作用。

  • 我希望上面的代码可以解决问题。任何帮助,不胜感激。

    万分感谢!

    最佳答案

    是的,找到了解决方案:

    注释如下,使用PowerMockRunner运行测试用例:

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

    模拟您的静态方法并提供特定类型的类的预期对象:
    PowerMockito.mockStatic(MyOtherClass.class);
    PowerMockito.when(MyOtherClass.staticMethod((Class<SomeClass>) SomeClass.class)).thenReturn(...);
    

    谢谢

    08-18 19:51