Ich habe hier ein kleines Problem und habe wirklich keine Ahnung, wie man Komponententests für Logger-Nachrichten implementiert. Natürlich klingt es ein bisschen komisch, aber für mich ist es ein wirklich interessantes Thema. Aber lass mich genauer sein.
Ich habe einige Scala-Klassen und Testspezifikationen:
%Vor%Mein erster Gedanke war, die zugrundeliegenden Logger-Engine-Nachrichten abzufangen, aber es scheint etwas schwierig zu sein, sie aufgrund der Verwendung von Mixins in der Testable-Klasse zu implementieren. Daher wären Ideen für solche Dinge sehr hilfreich.
UPDATE: Ich habe schließlich einen Test implementiert und beschlossen, meine Lösung mit der Community zu teilen. Wir können Scalalogging nicht überlisten. Logger-Klasse direkt, weil es endgültig ist, aber wir können immer noch zugrunde liegenden slf4j Logger spotten. Um eine Idee zu klären:
%Vor%Danke Eric für seine Hilfe. Seine Antwort war ein Schlüssel zur Lösung.
Eine Möglichkeit besteht darin, Mockito zu verwenden, um Methodenaufrufe zu überprüfen:
%Vor%Dies ist die Hauptidee, aber Sie müssen sie möglicherweise anpassen, abhängig von Ihren genauen Eigenschaften und dem Protokollierungsrahmen:
Gute Frage ... und gute Antwort! Ich hatte Probleme mit dem Mockito Mixin. Also verwende ich Eric's Ansatz mit dem Java DSL für Mockito. Wenn jemand an dieser Variante interessiert ist, hier ist der leicht modifizierte Code:
%Vor%Tags und Links scala unit-testing logging