小编use*_*572的帖子

如何使用多个ArgumentCaptor参数

当我使用超过 1 个 ArgumentCaptor 参数时,我收到一个空指针。可能有人知道出了什么问题?

@RunWith(PowerMockRunner.class)
@PrepareForTest(FileHelper.class)
public class MyTest {

...

@Before
public void setUp() throws Exception {
PowerMockito.mockStatic(FileHelper.class);
}


@Test
public void save() throws Exception {
ArgumentCaptor<String> argName = ArgumentCaptor.forClass(String.class);
ArgumentCaptor<List> argList = ArgumentCaptor.forClass(List.class);
PowerMockito.doNothing().when(FileHelper.class, "saveTextFile", argName.capture(),
    argList.capture());

...
}
Run Code Online (Sandbox Code Playgroud)

FileHelper 类中的 saveTextFile 方法:

public static void saveTextFile(String filename, List<String> data) {
...
}
Run Code Online (Sandbox Code Playgroud)

如果我运行代码,我会得到这个异常:

java.lang.NullPointerException 在 java.lang.Class.isAssignableFrom(本机方法) 在 org.powermock.reflect.internal.WhiteboxImpl.checkIfParameterTypesAreSame(WhiteboxImpl.java:2432) 在 org.powermock.reflect.internal.WhiteboxImpl.getMethods(WhiteboxImpl) .java:1934) 在 org.powermock.reflect.internal.WhiteboxImpl.getBestMethodCandidate(WhiteboxImpl.java:1025) 在 org.powermock.reflect.internal.WhiteboxImpl.findMethodOrThrowException(WhiteboxImpl.java:948) 在 org.powermock.reflect。 internal.WhiteboxImpl.doInvokeMethod(WhiteboxImpl.java:882) 在 org.powermock.reflect.internal.WhiteboxImpl.invokeMethod(WhiteboxImpl.java:859) 在 org.powermock.reflect.Whitebox.invokeMethod(Whitebox.java:466) 在 org .powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.when(PowerMockitoStubberImpl.java:106)

如果我调用一个只有一个参数(即列表参数)的方法,一切都会正常。

java junit unit-testing mockito

5
推荐指数
1
解决办法
8775
查看次数

标签 统计

java ×1

junit ×1

mockito ×1

unit-testing ×1