Was ist der beste Weg, um unit-test SLF4J log-Meldungen?

Ich bin mit slf4j und ich will unit-test-meine-code, um sicherzustellen, dass warn/Fehler-log-Meldungen generiert werden, unter bestimmten Bedingungen. Ich würde eher diese strenge unit-tests, so dass ich lieber nicht haben, um ziehen Sie die Protokollierung Konfiguration aus einer Datei, um zu testen, ob die log-Meldungen generiert werden. Das mocking framework das ich verwende, ist Mockito.

Da SLF4J ist nur eine "Fassade" für die anderen logging-Implementierungen, Sie kann nicht unit-testen Sie es einfach selbst, Sie müssen auch angeben, die Implementierung, die Sie verwenden.
Nicht wahr. Ich könnte hinzufügen, ein setter zu meiner Klasse pass in den logger aus dem test, dann gehen in einen verspotteten aus Logger-Instanz, und stellen Sie sicher, dass das entsprechende Protokoll-Anrufe gemacht wurden. Ich habe nur gehofft, um eine elegantere Lösung, als das hinzufügen einer set-Methode nur zum testen und meine Logger-Instanz nicht rechtskräftig.
Als ein beiseite, die im Allgemeinen ausgezeichnete "Growing Object-Oriented Software" - Buch hat ein Kapitel über das unit-testing der Protokollierung. Es ist nicht völlig überzeugend, aber es ist sicherlich gut durchdacht und lesenswert (amazon.co.uk/Wachsen-objektorientierte-Software-Guided-Unterschrift/...)

InformationsquelleAutor Javid Jamae | 2011-01-10

Schreibe einen Kommentar