Ich benutze JUnit, um einige höhere Level-Tests für Legacy-Code, der keine Unit-Tests hat schreiben.Gibt es eine Möglichkeit, JUnit zu zwingen, bei jeder ungeprüften Ausnahme fehlschlagen, auch wenn verschluckt
Ein Großteil dieses Codes "schluckt" eine Vielzahl von ungeprüften Ausnahmen wie NullPointerExceptions (z. B. indem nur die Stapelverfolgung gedruckt und null zurückgegeben wird). Daher kann der Komponententest selbst durchlaufen, da es an verschiedenen Stellen im unteren Code eine Kaskade von Katastrophen gibt.
Gibt es eine Möglichkeit, einen Test für die erste ungeprüfte Ausnahme fehlschlagen zu lassen, selbst wenn sie verschluckt wird?
Die einzige Alternative, die ich denken kann, ist, einen benutzerdefinierten JUnit-Wrapper zu schreiben, der System.err umleitet und dann die Ausgabe nach Ausnahmen analysiert.
Nein, wie würde JUnit von der Ausnahme wissen, wenn sie verschluckt wird, bevor der JUnit-Code erreicht wird? Aber vielleicht sollten Sie sich nicht auf irgendetwas verlassen, was im Legacy-Code passiert, und einfach überprüfen, ob Ihr Code korrekt ist.Denn wenn etwas schief geht, was sich auf das Ergebnis Ihres Codes auswirkt, sollte Ihr Test fehlschlagen. – FRotthowe
@FRotthowe: Ich verwende JUnit, um Regressionstests und Wrapper-Tests für vorhandene Komponenten des Legacy-Codes zu schreiben. Ich habe nicht viel von meinem eigenen Code. Das Problem ist, dass ich diese internen Fehler abfangen möchte, vor allem wenn die Leute den internen Code pflegen. – Uri