2011-10-20 17 views
0

、私は次のコードのようなものがあります:JMockitでメソッド呼び出しを受け入れる方法は?

public void f() { 
    logger.info("some string"); 
} 

をどのように私は、ロガーへの呼び出しが許可されていることをJMockitで指定するのでしょうか?たとえば、誰かがロガー呼び出しを次のように変更した場合:

logger.finest("some string"); 

テストは引き続き実行されます。あなたがhttp://jmockit.googlecode.com/svn/trunk/www/tutorial/StateBasedTesting.htmlあたりとして、スタブアウトモッククラスを作成することができ

答えて

0

@MockClass(realClass = Logger.class, stubs = "", inverse = true) 
static class MockLoggerStub { } 

をそれからちょうどあなたのテストを実行する前にこれを呼び出す:

Mockit.setUpMocks(MockLoggerStub.class); 

これは完全にするためにLoggerクラスをスタブしますあなたのテスト。

+0

これは正しい軌跡のようです。これからスタブオブジェクトを取得する方法はありますか?私のコンストラクタは、(依存性注入のための)パラメータとしてロガーインスタンスを取り込みます。 –

+0

私は100%確信しているわけではありませんが、このスタイルのモックを使用して後で使用するためにスタブオブジェクトを取得することはできないと思います。そのためには、 "Behavior Based Testing"ルートを下さなければならないと思います。 http://jmockit.googlecode.com/svn/trunk/www/tutorial/BehaviorBasedTesting.html#partialをご覧ください。 –

関連する問題