2016-08-31 1 views
0

J'ai écrit une méthode qui lit les fichiers .properties. J'ai testé ma méthode avec de vrais fichiers sur mon pc et ça a marché. Mais maintenant je veux utiliser des fichiers temporaires pour m'assurer que mes tests unitaires fonctionnent même si je supprime ma ressource de test. J'ai essayé:Comment puis-je remplir un fichier temporaire avec du contenu?

@Rule 
public TemporaryFolder tmpFolder = new TemporaryFolder(); 

@Test 
public void loadPropertiesFromFile(){ 
    File tmpFile = File.createTempFile("test", ".properties", tmpFolder.getRoot()); 
} 

Mais comment puis-je écrire le contenu dans mon TMPFILE comme "key1 = foo1"?

+1

Tout d'abord, c'est 2016; Pourquoi utiliser 'File' du tout? Vous utilisez Java 7+, non? – fge

+0

Non, j'utilise Java 8. Mais je suis nouveau à ce sujet ... – mkaay

+1

8 est 7+ (7+ signifie 7 ou plus). Ce qui signifie que vous pouvez utiliser la nouvelle API de fichier qui ne nécessite pas d'utiliser 'File', qui est [broken] (http://java7fs.wikia.com/wiki/Why_File_sucks). Vous pouvez utiliser [memoryfilesystem] (https://github.com/marschall/memoryfilesystem) dans vos tests: s'ils fonctionnent avec ceci, ils fonctionneront partout. – fge

Répondre

0

Créez un fichier appelé temp.properties, écrivez votre contenu (c'est-à-dire key1 = foo1, etc.) et utilisez le fichier API.

@Test 
public void loadPropertiesFromFile(){ 
    File tmpFile = new File("temp.properties"); //put absolute path of file in argument. 

}