如何存根没有参数的静态void方法?

时间:2017-02-22 06:42:49

标签: java junit mockito powermock

PowerMockito.spy(SomeClass.class);   
PowerMockito.doNothing().when(SomeClass.class);
SomeClass.StaticVoidMethod();

这似乎不起作用。我得到UnfinishedStubbingException。

3 个答案:

答案 0 :(得分:1)

您可以使用

requirements.txt

这将模拟此类的所有方法。

有关详细信息,请浏览此链接 https://github.com/powermock/powermock/wiki/MockStatic

干杯!!!

答案 1 :(得分:1)

当你真的无法改变“被测代码”时;而静态调用给你带来问题,那么你唯一的选择就是使用PowerMock;正如其他答案大纲所示,他们的documentation给出了如何做到这一点的准确描述(以及记录:仔细阅读并遵循该说明)。

但你必须明白,与其他模拟框架相比,PowerMock“更昂贵”;例如:你不能很好地将PowerMock与Mockito结合起来。当然有PowerMockito;但该工具仅适用于几乎过时的Mockito版本。

长话短说:PowerMock可以解决这个问题;但是,从长远来看,当你为你创造其他问题时,不要感到惊讶。

答案 2 :(得分:0)

你没有完成你的Mockito判决。你忘了告诉存根它会调用什么方法。

要完成句子......不要忘记最后的方法调用。

PowerMockito.doNothing().when(SomeClass.class).StaticVoidMethod();