我需要模拟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上的示例