2016-06-29 13 views
0

Ich habe die folgende einfache method in meiner Java Anwendung:Junit Test korrekte Protokollausgabe von Methode?

Methode I testen wollen:

public void showOutputOfIdentifications(int age) { 

    if(age>25){ 

     LOGGER.info("Over 25"); 

    }else{ 

     LOGGER.info("25 or Under"); 

    } 
} 

Wie ich diese Methode, um sicherzustellen, testen es protokolliert, was es soll, wenn ein Wert ist über/unter 25?

Als Referenz: Ich verwende derzeit das Junit Framework mit Mockito. Mein Logger ist slf4j.

+0

Blick http://www.coderanch.com/t/96469/Testing/junit-asserts-log-Messages vielleicht hilft – Jens

Antwort

0

Sofern LOGGER ein Objekt ist, ist der klassische Weg, es durch einen Schein zu ersetzen. Mockito ist eine bekannte Scheinbibliothek, aber andere sind in der Nähe, wählen Sie einfach eine. Mit Mockito, es könnte wie folgt aussehen:

LOGGER_mock = mock(LoggerClass.class); 
// inject LOGGER_mock into class to test, eventually use reflection to change 
// a private attribute 

classToTest.showOutputOfIdentifications(10); 
verify(LOGGER_mock).info("25 or Under");