Hallo liebe Community,
ich arbeite mich gerade in UNIT Tests ein und habe auch schon die ersten Probleme.
Code Coverage ein Eclipse Plugin hilft mir dabei, alle Testcases abzudecken, aber ich bekomme sie nicht programmiert.
Folgendes Beispiel:
Beim Instanziieren von der Klasse Logging, passiert nichts anderes als das Log file bekannt zu geben und dessen Formatter. Alles kein Problem.
PS: Die Klasse ist als Singelton geschrieben.
Nun der Test:
Ich habe den Pfad auf fail gesetzt -> jetzt müsste doch meine Exception kommen.
Ist meiner Herangehensweise Müll?
Oder sollte ich mein Konstruktor Logging umschreiben.
Sollte man immer so Programmieren , dass man keine Logik im Konstruktor hat?
Beim Testen macht das echt schwierigkeiten. Das Beispiel zeigt auf jeden Fall gut, das man erst den Test schreibt und dann die Klasse.
Danke für Hilfe und Tipps.
ich arbeite mich gerade in UNIT Tests ein und habe auch schon die ersten Probleme.
Code Coverage ein Eclipse Plugin hilft mir dabei, alle Testcases abzudecken, aber ich bekomme sie nicht programmiert.
Folgendes Beispiel:
Java:
/**
* Default Constructor - initialize Logging
*/
private Logging(){
try {
// append logs
this.fileHandler = new FileHandler(Logging.getPath(),true);
} catch(Exception e) {
System.err.println("Problem with finding log path" + e.getMessage());
}
// set format
this.fileHandler.setFormatter(new LoggingFormatter());
// set handler where we write log messages
LOGGER.addHandler(this.fileHandler);
}
Beim Instanziieren von der Klasse Logging, passiert nichts anderes als das Log file bekannt zu geben und dessen Formatter. Alles kein Problem.
PS: Die Klasse ist als Singelton geschrieben.
Nun der Test:
Java:
@Test(expected = Exception.class)
public void testInstanziateLogging(){
Logging.setPath("fail");
System.out.println(Logging.getPath());
Logging.getInstance();
}
Ich habe den Pfad auf fail gesetzt -> jetzt müsste doch meine Exception kommen.
Ist meiner Herangehensweise Müll?
Oder sollte ich mein Konstruktor Logging umschreiben.
Sollte man immer so Programmieren , dass man keine Logik im Konstruktor hat?
Beim Testen macht das echt schwierigkeiten. Das Beispiel zeigt auf jeden Fall gut, das man erst den Test schreibt und dann die Klasse.
Danke für Hilfe und Tipps.