Mockito:模拟类< T>宾语 [英] Mockito: Mock class<T> object

查看:80
本文介绍了Mockito:模拟类< T>宾语的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

抱歉,已经讨论过了,但是我没有找到任何解决办法。

Apologies if it's already been discussed but I didn't find any solutions.

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

Problem - Trying to mock an object of my Class of some type (e.g. class)

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

Writing test case of method xyz() where i need to mock SomeClass.class as mentioned in below code snippets

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

MyOtherClass {
..
<T> T staticMethod(Class<T> clazz) {
}
...
}




  1. 使用电源嘲笑

  2. 尝试过(Class)Mockito.mock(Class.class),这不起作用。

我希望上面的代码可以解决问题。

I hope above code clears the problem. Any help much appreciated.

一吨!

推荐答案

是的,找到解决方案:

通过PowerMockRunner运行测试案例,方法如下:

Run your test case with PowerMockRunner by annotating as follow:

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

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

Mock your static method and supply expected object of your class of specific type:

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

谢谢

这篇关于Mockito:模拟类&lt; T&gt;宾语的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆