0

テストされたクラスに追加された匿名の内部クラスがあります。

class ToTest{

    private MyManager myManager

    public void seyMyManager(MyManager myManager){
       this.myManager = myManager;
    } 

    ....
    public void doSomething(){
    ...
        myManager.addListener(new Listener(){...});
    .....  
    }
}

私のマネージャーは、ボディをテストするメソッドで使用される他のパッケージのクラスです。

この addListener 呼び出しを無視するにはどうすればよいですか?

PS Ignore = myManager.addListener(..) メソッドの呼び出しをチェックしたくない

4

2 に答える 2

1

これを行うにはいくつかの方法があります。

私の好みの方法は、次のように期待を明確にすることです。

MyManager myManager = EasyMock.createMock(MyManager.class);
...
myManager.addListener(EasyMock.isA(Listener.class));
...
replay(myManager);

ここで重要なのは、渡されEasyMock.isAた an に対する期待に一致するです。Listenerテストが失敗する他の場所に問題がある場合、私はこの方法を好みます。

別の方法として、素敵なモックを使用することもできます:

MyManager myManager = EasyMock.createNiceMock(MyManager.class);
...
replay(myManager);

ただし、予期しないことが原因でテストが失敗することはありません。そのため、この方法でモックを作成するのは好きではありません。

于 2013-07-31T14:57:59.950 に答える