PowerMockito.spy(SomeClass.class);
PowerMockito.doNothing().when(SomeClass.class);
SomeClass.StaticVoidMethod();
这似乎不起作用。我得到UnfinishedStubbingException。
答案 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();