我有下面的 static
方法,我正在尝试使用powermockito对其进行模拟。
Ln 1 public static method getConfigs(){
2
3 File[] files = new File(/tmp/dir/).listFiles();
4 if (null == files) {
5 return Collections.emptyMap();
6 }
7 return getData();
}
在我的测试课上:
@RunWith(PowerMockRunner.class)
@PrepareForTest(Configs.class)
public class ConfigsTest {
@InjectMocks
Configs configs;
@Test
public void testGetConfigs() throws Exception {
PowerMockito.mockStatic(Configs.class);
Map<String, Object> map = new HashMap<>();
map.put("data", "data");
File file = PowerMockito.mock(File.class);
File[] files = new File[] { new File("file") };
PowerMockito.when(file.listFiles()).thenReturn(files);
PowerMockito.when(configs.getDataMap()).thenReturn(map);
Map data = secrets.getDataMap();
Assert.assertNotNull(data);
}
现在,问题是测试在if条件下失败,第4行。我尝试了几种方法来模拟测试并为测试添加值 file
在空检查中使用的对象。我需要我的测试覆盖超过if条件,以满足声纳覆盖范围。请让我知道我如何才能做到这一点。
1条答案
按热度按时间5ktev3wc1#
我想应该是这样
powermock静态