1

我需要模拟 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 。

4

1 回答 1

3

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

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

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

请参阅文档中的示例

于 2014-08-12T08:01:58.863 回答