7

ロギング イベントのリストのみを保存する log4j 用のアペンダーはありますか (ユニット テストで使用され、エラー ログが書き込まれていないことを確認します)。

4

3 に答える 3

3

MemoryAppenderがありますが、標準の log4j ライブラリには含まれていません。

独自のものを簡単に作成できますが、それらを単体テストにのみ使用している場合は、おそらく Logger をモックして、呼び出しが行われないと断言します。ターゲット クラスの 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();
}
于 2009-07-19T11:58:31.590 に答える
1

あるとは思いません。ただし、自分で簡単に書くことができます。ここに適切なチュートリアルがあります。

于 2009-07-19T11:40:50.363 に答える