2012-05-02 8 views
1

このメソッドの出力を取得するには、文字列変数myLogger.log(e)をJunitでテストできるようにします。文字列変数myLogger.log(e)を取得します

myLogger.log(e); 
String s= ???? 
assertEqual(expected,s); 
+0

myLoggerのクラスに関する情報をもう少しあげてください –

+0

Log4jを使用している場合、例外として例外が発生します。 – josephino

+0

なぜログ文字列をテストしたいのですか?これは私にとってはかなり奇妙に思えます。特に、通常、展開中に簡単にログ形式を変更できるからです。単体テストでは、通常はロジックをテストし、ロギングはテストしません。 – Thomas

答えて

0

あなたのロガーに追加アペンダを追加することができます。そして、あなたがにStringWriterの#1のtoString()説明hereとして

public static void main(String[] args) { 
    Logger logger = Logger.getLogger("logger"); 
    Layout layout = new PatternLayout(); 
    StringWriter stringWriter = new StringWriter(); 
    WriterAppender writerAppender = new WriterAppender(layout, stringWriter); 
    logger.addAppender(writerAppender); 

    logger.error("test"); 
    String string = stringWriter.toString(); 
    System.out.println(string); 
    } 

の値にあなたのTextAreaの内容を変更するにStringWriterへの書き込みにWriterAppenderを使用してください。

関連する問題