如何在powermock中模拟void方法

问题描述 投票:2回答:2

如何模拟非静态,非最终的void方法方法的签名如下。我正在使用Powermockito。

public class Name{

public void methodName{
...
...
}
}

@RunWith(PowerMockRunner.class)
@PrepareForTest({Name.class})
public class TestClass{
@Test
public void testMethodName(){
PowerMockito.doNothing().when(Name.class, methodName);
//some  when calls after this and assert later on
}

我想在调用methodName时什么都不做。上面的代码不起作用。它说methodName无法解析。

java unit-testing junit4 powermock
2个回答
0
投票

您可以使用PowerMock.createmock()来模拟您的类,其中方法就在那里。例如,你有ClassA和methodA这是一个Void方法。然后你可以用以下方式模拟它:

A a = PowerMock.CreateMock(A.class);
a.methodA();
PowerMock.replay(a);

注意:在上面的情况下,方法a是无效的,这就是EasyMock.expect没有返回的原因;


-1
投票

我目前不在IDE,但我认为你可以这样做:

final Name name = mock(Name.class);
doNothing().when(name).methodName();
© www.soinside.com 2019 - 2024. All rights reserved.