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

J'ai écrit test pour la méthode ci-dessus, quand je courais en cas de test dans l'éclipse, il est passe et quand je debug loadProperties() n'est pas appelé et cobertura report est montrant code comme découvert.cas de test ne couvre pas dans 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 
} 

Que devrais-je changer pour m'assurer que mon code couvre réellement la couverture de code?

Répondre