Unit Test Logger-Nachrichten mit specs2 + scalalogging

10

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.

    
Mikhail Aksenov 18.07.2013, 09:26
quelle

2 Antworten

5

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:

  • Logger muss überschreibbar sein
  • Die info-Methode darf nicht endgültig sein (eine von Mockitos Einschränkungen)
Eric 18.07.2013, 11:11
quelle
0

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%     
Chris Bedford 19.12.2015 23:13
quelle

Tags und Links