Mockitoでは、verify()
の引数リストにbyte[]
というメソッド呼び出しがありますが、これを書く方法が見つかりませんでした。Mockito matcherとプリミティブの配列
myMethod(byte[])
私はMockitoでそれをする方法をanyByteArray()
、のような何かをしたいですか?
Mockitoでは、verify()
の引数リストにbyte[]
というメソッド呼び出しがありますが、これを書く方法が見つかりませんでした。Mockito matcherとプリミティブの配列
myMethod(byte[])
私はMockitoでそれをする方法をanyByteArray()
、のような何かをしたいですか?
かをしようとするだろう:私はむしろMatchers.<byte[]>any()
を使用することになり
AdditionalMatchers.aryEq(array);
はこれを試してみてください。.. any(byte[].class)
。これは私のために働いた。
私はMutanosとAlecioに同意します。 さらに、できるだけ多くの同一メソッド呼び出しをチェックすることができます(実動コード内の後続の呼び出しを検証し、検証の順序は関係ありません)。
import static org.mockito.AdditionalMatchers.*;
verify(mockObject).myMethod(aryEq(new byte[] { 0 }));
verify(mockObject).myMethod(aryEq(new byte[] { 1, 2 }));
引数が配列でもあるときは、Mockito.any()を使用することができます。 は、ここでは、コードです。 私はこのようにそれを使用する:私はこのためにMatchers.refEq
を使用
verify(myMock, times(0)).setContents(any(), any());
。
バイト配列の内容が本当に気にしませんか? これは便利なのでanyX()マッチャーを使用する単体テストでは多くのことがわかりますが、実際には何が渡されているか気にする必要があります。実際に値を消費するAnswerを使用していない場合、実際の期待される議論と一致するはずです。 – Matunos
@マトゥノス:議論の余地がある。任意のマッチャーを使用すると、テストがより簡単になり、テストを見ている次の人は、不必要に正確なマッチングによって注意をそらさず、テストの実際の目的に集中することができます。 –
@tbruelle:Javaの各配列はオブジェクトであることに注意してください。それは初めにあなたを助けるでしょう。 –