Ich wollte die IOException
und IllegalArgumentException
geworfen von properties.load(in)
Methode testen. Wie in der Dokumentation hier OracleDoc heißt es die Lade-Methode wirft IOException
- wenn ein Fehler beim Lesen aus dem Eingabestream aufgetreten ist. IllegalArgumentException
- Wenn der Eingabestream eine ungültige Unicode-Escape-Sequenz enthält.Wie man Inputstream vortäuscht, um Eigenschaften in Java zu laden
Hier ist mein Code:
public class PropertiesRetriever {
private String foo;
private String foo1;
private Properties properties;
/**
* Injects the properties file Path in the {GuiceModule}
* Calls {@link PropertiesRetriever#loadPropertiesPath(String) to load the
* properties file.
*/
@Inject
public PropertiesRetriever(@Named("propertiesPath") String propertiesPath, Properties properties)
throws IOException {
this.properties = properties;
loadPropertiesPath(propertiesPath);
}
/**
* Loads the properties file as inputstream.
*
*/
public void loadPropertiesPath(String path) throws IOException {
InputStream in = this.getClass().getResourceAsStream(path);
properties.load(in);
}
Hier wird ein Verfahren:
properties.load(in)
wirft IOException
und IllegalArgumentException
. Ich wollte diese Methoden im JUnit Test testen. Kann ich diese Methoden trotzdem nennen?
Mögliche Duplikat [Mocking Java Input] (http://stackoverflow.com/questions/6371379/mocking-java-inputstream) –