我需要模拟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
看起来方法没有被模拟,而是调用了真正的方法。
PowerMock使用特殊的测试运行器来模拟静态方法。
将@RunWith(PowerMockRunner.class)
和@PrepareForTest(IOUtils.class)
注释放在测试类中
参见docs