10

私はMockitoでこの動作を達成しようとしています:

タイプ O のオブジェクトがメソッド M に適用される場合、モックはタイプ O のオブジェクトで別のメソッドを実行し、それ自体をパラメーターとして渡す必要があります。

結局可能ですか?

4

1 に答える 1

11

おそらく、 と をdoAnswerwhen組み合わせて使用​​できMockito.anyます。 doAnswerPowerMockitoの一部であり、実行したい多くのモッキングを拡張するのに役立ちます。

注、doAnswervoid 関数の例として使用されます。空でない場合は、標準を使用できますMockito.when(MOCK.call).then(RESULT)

PowerMockito.doAnswer(new org.mockito.stubbing.Answer<Object>() {
    @Override
    public Object answer(InvocationOnMock invocation) throws Throwable {
        //Do whatever to Object O here.
        return null;
    }).when(MOCKOBJECT.methodCall(Mockito.any(O.class)));

doAnswerこれにより、モック オブジェクトで便利な機能が実行され、 を使用して、whenオブジェクトの特定のクラスをキャッチするように割り当てることができます (期待する正確なオブジェクトを指定する必要はありません)。パラメータの一部として asを使用するMockito.any(Class.class))と、Mockito は、指定された型の ANY オブジェクトが渡されたメソッド呼び出しにヒットしたときに、doWhatever を開始することを認識できます。

于 2013-08-14T17:54:31.297 に答える