1

log4j プロパティを 1 回だけロードすることになっていることはわかっていますが、単体テストを行うときの標準的な方法は何ですか? すべての単体テスト ファイルにロードする必要がありますか? jUnit の setUp() メソッドに入れる必要がありますか?

ありがとう

4

1 に答える 1

3

そもそも単体テストでlog4jプロパティをロードしたいのはなぜですか? 通常のイベントでは、単体テストでログ メッセージが生成されることは想定されていません。IMOでは、ロギングをオフにするだけです(ユニットテスト中のコードについても)。単体テストで必要な唯一の出力は、JUnit (またはお好みの単体テスト フレームワーク) が自動的に生成する要約であり、それ以外は雑然としています。これを単体テスト クラスのクラス セットアップ メソッドに追加します。

Logger.getRootLogger().setLevel(Level.OFF);

唯一の例外は、まだテストされていないクラス/モジュールの新しい単体テストをまとめているとき (レガシー コードで作業しており、徐々に単体テストでカバーしようとしているとき)、または失敗したテストを分析するときです。次に、ログ メッセージを標準出力に出力して、呼び出したコード内のどこかで問題が発生した原因の手がかりを取得しました。しかし、単体テスト (またはアプリケーション コード) が修正されたら、ログをオフに切り替えます。

于 2010-03-12T21:46:41.997 に答える