2017-02-05 74 views
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; 
    } 
} 

我已經寫測試情況下,用於上述方法中,當我在eclipse跑了作爲測試情況下,它通過當我調試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 
} 

我應該更改哪些內容以確保我的代碼實際覆蓋了代碼覆蓋範圍?

回答