使用PowerMock模拟java.io.File效果不佳

问题描述 投票:0回答:1

我的代码如下:

File file = File createTempFile(“xxx”, “txt”);

所以,当我使用PowerMock来模拟这个文件对象时,如:

@RunWith(PowerMockRunner.class)
@PrepareForTest({File.class,StringUtils.class})

…

PowerMockito.mockState(File.class);
PowerMockito.when(File.createTempFile(Mockito.any(), Mockito.any()).thenReturn(null);

PowerMockito.mockState(StringUtils.class.class);
PowerMockito.when(StringUtils.isEmpty().thenReturn(false);

当我运行此代码时,此文件为空,但我使用相同的代码来模拟 org.apache.commons.lang3.StringUtils#isEmpty 是有效的

java powermockito
1个回答
0
投票

您明确指定了

.thenReturn(null)
,因此您得到
null
并不奇怪。

您当然可以显式返回其他内容,例如模拟对象:

File mockFile = Mockito.mock(File.class);
PowerMockito.when(File.createTempFile(Mockito.any(), Mockito.any()).thenReturn(mockFile);
© www.soinside.com 2019 - 2024. All rights reserved.