次のコードのようなものがあります。
public void f() {
logger.info("some string");
}
ロガーへの呼び出しが許可されていることを JMockit で指定するにはどうすればよいですか? たとえば、誰かがロガーの呼び出しを次のように変更したとします。
logger.finest("some string");
テストはまだ合格するはずです。
http://jmockit.googlecode.com/svn/trunk/www/tutorial/StateBasedTesting.htmlに従って、スタブ化されたモック クラスを作成できます。
@MockClass(realClass = Logger.class, stubs = "", inverse = true)
static class MockLoggerStub { }
次に、テストを実行する前にこれを呼び出します。
Mockit.setUpMocks(MockLoggerStub.class);
これにより、テスト用の Logger クラスが完全にスタブ化されます。