他のプログラマーが作成したプログラムで JUnit + JMock を実行するタスクを与えました。ほとんどのクラスには、次の静的フィールド ロガーがあります。
static Log logger = LogFactory.getLog(SomeClass.class.getName());
メソッド内でインスタンス化することにより、 SomeClassのインスタンスを作成していますsetUp()
。jUnit クラスを実行すると、次のエラー メッセージが表示されます。
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: (No such file or directory)
DOMConfigurator.configure("log4j.xml");
メソッド内で呼び出して手動で log4j を設定しようとしましたが、setUp()
上記と同じエラー メッセージが表示されます。
質問は:
- LogFactory.getLogを使用する他のクラスを呼び出すクラスで単体テスト + モッキングを実行するにはどうすればよいですか
- モックと単体テストが例外なく実行されるように、setup メソッド内で log4j を構成する必要がありますか?
- どうすればいいですか。