を働いていない私は、私のコードの異なる点での2行があります:私はいくつかのユニットテストをしていますMockitoマッチャーは
Message<T1> reply = (Message<T1>) template.sendAndReceive(channel1, message);
Message<T2> reply = (Message<T2>) template.sendAndReceive(channel2, message);
をし、テストは両方のステートメントをカバーしています。私は行動を模擬しようとすると、私はこのようないくつかの動作を定義:
Mockito.when(template.sendAndReceive(Mockito.any(MessageChannel.class), Matchers.<GenericMessage<T1>>any())).thenReturn(instance1);
Mockito.when(template.sendAndReceive(Mockito.any(MessageChannel.class), Matchers.<GenericMessage<T2>>any() )).thenReturn(null);
私はユニットテストを実行し、いくつかのデバッグを行う、最初の文が返す
ヌルあなたは何マッチャー任意のアイデアを持っていますかうまくいかないようですね?それは常にモックの最後の定義をとります。私はユニットテストを実行し、いくつかのデバッグを行うとき、私はMockito 1.1.10
あなたはタイプ消去に苦しんでいます。 2つの呼び出しの間で異なるのは、GenericMessageの '<>'のジェネリックです。ランタイムJavaにも同じように見えます。最高のアドバイスは、あなたのタイプではなく、渡すオブジェクトに基づいてモックの動作を変えることです。次に、あなたが望む動作を得るでしょう。 –