2009-07-19 7 views
6

log4j用のアペンダはログ記録イベントのリストのみを格納します(エラーログが書き込まれていないことを確認するために単体テストで使用されます)。log4jのメモリ 'list appender'

答えて

2

MemoryAppenderがありますが、標準のlog4jライブラリの一部ではありません。

あなたは簡単に自分で書くことができますが、単体テストのためだけに使用しているのであれば、おそらくロガーを嘲笑して呼び出しは行われないと主張します。ターゲットクラスでgetLogger()メソッドをオーバーライドするか、型の上で直接Loggerを設定します。

(何らかのエラーのために残念メモリからたとえば、)Jmockを使用して:

public void testDoFoo() { 
    Mockery mockery = new Mockery(); 
    Logger mockLogger = mockery.mock(Logger.class); 

    Foo foo = new Foo(); 

    foo.setLogger(mockLogger); 

    mockery.checking(new Expectations() { 
     { 
      never(mockLogger).debug(with(any(String.class)); 
     } 
    }; 

    ... 
    //do the actual test. 

    //assert the mock type has never been called. 
    mockery.assertIsSatisfied(); 
} 
1

私はそこにいるとは思わない。あなたは自分で簡単に書くことができます。 suitable tutorialです

+0

私は、すでに感謝をしました。 – ripper234

関連する問題