0
내가 위의 방법에 대한 테스트 케이스 작성했습니다
public class MyUtil {
public static Properties loadProperties() throws Exception {
Properties prop = new Properties();
InputStream inputStream = MyUtil.class.getClassLoader().getResourceAsStream(PROPERTY_FILENAME);
if (inputStream != null) {
prop.load(inputStream);
}
return prop;
}
}
, 내가 이클립스 테스트 케이스로 실행했을 때 그것을 전달하는 것 그리고 내가 loadProperties()
을 디버깅 할 때 호출 받고되지 않고 cobertura report
이 같은 폭로 코드를 보여주는 취재 없습니다.테스트 케이스는 cobertura
@RunWith(PowerMockRunner.class)
@PrepareForTest({ MyUtil.class, Properties.class })
@Test
public void testLoadProperties() throws Exception{
String fileName = "application.properties";
Properties mockProps = PowerMockito.mock(Properties.class);
PowerMockito.mockStatic(Properties.class);
PowerMockito.whenNew(Properties.class).withNoArguments().thenReturn(mockProps);
InputStream mockInputStream = Mockito.mock(InputStream.class);
PowerMockito.mockStatic(MyUtil.class);
ClassLoader mockClassLoader = Mockito.mock(ClassLoader.class);
PowerMockito.when(MyUtil.class.getClassLoader()).thenReturn(mockClassLoader);
PowerMockito.when(mockClassLoader.getResourceAsStream(fileName)).thenReturn(mockInputStream);
PowerMockito.doNothing().when(mockProps).load((InputStream)Mockito.any());
MyUtil.loadProperties();
//assertNotNull("Not Null", MyUtil.loadProperties()); //assert failing
}
코드 커버리지에서 실제로 코드가 변경되도록하려면 어떻게해야합니까?