PowerMock Mockito:如何模拟所有静态方法?
使用PowerMock(使用Mockito)时,我们是否需要模拟类的所有静态方法?我的意思是,假设我们有:
class MockMe {
public static MockMe getInstance(){
//return new Instance via complex process;
}
public static List<X> anotherStaticMethod(){
// does xyz
}
}
我的问题是,如果我需要模拟 getInstance 方法,是否也需要模拟“anotherStaticMethod”?
PowerMock版本:1.3,Mockito版本:1.8
Do we need to mock all static methods of a class when using PowerMock (with Mockito)? I mean, suppose we have:
class MockMe {
public static MockMe getInstance(){
//return new Instance via complex process;
}
public static List<X> anotherStaticMethod(){
// does xyz
}
}
My question, if I need to mock getInstance method, is it necessary to mock "anotherStaticMethod" as well?
PowerMock version:1.3, Mockito version:1.8
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不,您可以在 PowerMockito 中使用 spy 来使用部分模拟。或者您可以使用存根 API:
No you can use partial mocking using spy in PowerMockito. Or you can use the stubbing API:
模拟静态方法
如何模拟和存根:
在类级别添加
@PrepareForTest
。调用
PowerMockito.mockStatic()
来模拟静态类(使用 PowerMockito.spy(class) 来模拟特定方法):只需使用
Mockito.when()
来设置您的期待:Mocking Static Method
How to mock and stub:
Add
@PrepareForTest
at class level.Call
PowerMockito.mockStatic()
to mock a static class (use PowerMockito.spy(class) to mock a specific method):Just use
Mockito.when()
to setup your expectation: