En utilisant une combinaison de testng et jmockit pour effectuer des tests unitaires. Dans une méthode que je teste, il tente d'accéder à une propriété système que j'ai définie à l'aide d'un script de déploiement JBoss. Mon test d'unité n'a donc pas accès à l'ensemble de l'environnement JBoss pour accéder aux propriétés. . J'ai essayé de me moquer et de définir la variable système directement dans mon test, mais la propriété system retourne toujours null dans la classe que je suis en train de tester.Définir la propriété système dans le test d'unité jmockit
La classe testée:
//returns the correct value in the application but returns null for the test
public static final String webdavrootDir = System.getProperty("property.name");
public String getFileUrl(){
StringBuilder sb = new StringBuilder();
return sb.append(webdavrootDir)
.append(intervalDir)
.append(fileName)
.toString();
}
Le test:
@Test
public void getUrl(@Mocked System system){
system.setProperty("property.name", "https://justatest.com/dav/bulk");
String fileUrl = csvConfig.getFileUrl();
assertEquals(fileUrl, "https://justatest.com/dav/bulk/otherstuff");
}
Le test détecte la valeur null/otherstuff
mais attend https://justatest.com/dav/bulk/otherstuff
J'ai également essayé de placer la propriété du système dans un testng @BeforeMethod
méthode sans succès.