如何存根没有参数的静态无效方法?
How to stub static void methods that has no arguments?
PowerMockito.spy(SomeClass.class);
PowerMockito.doNothing().when(SomeClass.class);
SomeClass.StaticVoidMethod();
这似乎不起作用。我得到 UnfinishedStubbingException。
您没有完全完成 Mockito 句子。您忘记告诉存根它将调用什么方法。
完成句子...不要忘记最后的方法调用。
PowerMockito.doNothing().when(SomeClass.class).StaticVoidMethod();
您可以使用
PowerMockito.mockStatic(SomeClass.class)
这将模拟此 class 的所有方法。
有关详细信息,请阅读此 link
https://github.com/powermock/powermock/wiki/MockStatic
干杯!!!
当你实在改不了的时候"code under test";那个静态调用给你带来了问题,那么你唯一的选择就是使用 PowerMock;正如另一个答案所概述的,他们的 documentation 给出了如何做到这一点的确切描述(并记录在案:仔细阅读并遵循该说明)。
但你必须明白 PowerMock 与其他模拟框架相比 "more expensive";例如:您无法将 PowerMock 与 Mockito 很好地结合起来。当然还有PowerMockito;但该工具仅适用于非常过时的 Mockito 版本。
长话短说:PowerMock可以解决这个问题;但当它在长期 运行.
中为您带来 其他 问题时,请不要感到惊讶
PowerMockito.spy(SomeClass.class);
PowerMockito.doNothing().when(SomeClass.class);
SomeClass.StaticVoidMethod();
这似乎不起作用。我得到 UnfinishedStubbingException。
您没有完全完成 Mockito 句子。您忘记告诉存根它将调用什么方法。
完成句子...不要忘记最后的方法调用。
PowerMockito.doNothing().when(SomeClass.class).StaticVoidMethod();
您可以使用
PowerMockito.mockStatic(SomeClass.class)
这将模拟此 class 的所有方法。
有关详细信息,请阅读此 link https://github.com/powermock/powermock/wiki/MockStatic
干杯!!!
当你实在改不了的时候"code under test";那个静态调用给你带来了问题,那么你唯一的选择就是使用 PowerMock;正如另一个答案所概述的,他们的 documentation 给出了如何做到这一点的确切描述(并记录在案:仔细阅读并遵循该说明)。
但你必须明白 PowerMock 与其他模拟框架相比 "more expensive";例如:您无法将 PowerMock 与 Mockito 很好地结合起来。当然还有PowerMockito;但该工具仅适用于非常过时的 Mockito 版本。
长话短说:PowerMock可以解决这个问题;但当它在长期 运行.
中为您带来 其他 问题时,请不要感到惊讶