我需要模拟apache.commons.io.IOUtils类的toByteArray()。
我有像这样的代码片段:

PowerMockito.mockStatic(IOUtils.class);
PowerMockito.when(IOUtils.toByteArray(any(InputStream.class))).thenReturn(mockByteArray);


但是我从org.apache.commons.io.IOUtils.copyLarge()函数获取NullPointerException。

最佳答案

看起来该方法没有被模拟,而是调用了real方法。

PowerMock使用可以模拟静态方法的特殊测试运行器。

在测试类上放置@RunWith(PowerMockRunner.class)@PrepareForTest(IOUtils.class)批注。

请参见docs上的示例

09-15 23:34