Powermockito doNothing for method with arguments
我已经用Java开发了一个应用程序,我正在尝试使用Powermockito创建单元测试(我应该补充一点,我是单元测试的新手)。
我有一个名为 Resource 的类,它有一个名为 readResources 的静态方法:
public static void readResources(ResourcesElement resourcesElement);
ResourcesElement也是由我编码的。在测试中,我想创建自己的资源,所以我希望上述方法不执行任何操作。我尝试使用此代码:
PowerMockito.spy(Resource.class);
PowerMockito.doNothing().when(Resource.class, "readResources", Matchers.any(ResourcesElement.class));
单元测试引发异常:
org.mockito.exceptions.misusing.UnfinishedStubbingException: Unfinished stubbing here 检测到: -> at org.powermock.api.mockito.internal.PowerMockitoCore.doAnswer(PowerMockitoCore.java:36)
Powermockito还建议我应该使用thenReturn或throw after when,但似乎方法'when'在doNothing之后调用时返回void(这是合乎逻辑的)。如果我尝试:
PowerMockito.when(Resource.class, "readResources", Matchers.any(ResourcesElement.class)).....
做没有东西不是一个选项之后什么时候。
我设法使用该方法的2个参数版本使没有参数的方法什么都不做。例如:
PowerMockito.doNothing().when(Moduler.class, "startProcessing");
这有效(startProcessing不接受任何参数)。
但是,我怎样才能使那些需要参数的方法对Powermockito不做任何事情呢?