私はMockitoでこの動作を達成しようとしています:
タイプ O のオブジェクトがメソッド M に適用される場合、モックはタイプ O のオブジェクトで別のメソッドを実行し、それ自体をパラメーターとして渡す必要があります。
結局可能ですか?
おそらく、 と をdoAnswer
とwhen
組み合わせて使用できMockito.any
ます。 doAnswer
はPowerMockitoの一部であり、実行したい多くのモッキングを拡張するのに役立ちます。
注、doAnswer
void 関数の例として使用されます。空でない場合は、標準を使用できます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 を開始することを認識できます。