Collection <byte []>のMockitoとの等価性の検証?

私は単体テストにMockitoを使用しています。私はハッシュのコレクションを持っている問題を見つけました。パラメータが同等であることを確認したいと思います。

つまり、私は何かを持っている

Collection< byte[] > blobs = new ArrayList< byte[] >();

// Do some stuff, omitted for brevity

verify( mockStore ).setWhatever( eq( blobs ) );

これは失敗します。なぜなら、byte []のequals()は参照の比較を行います(同じ参照ではありません)。

byte []の2つのコレクションを比較するために欠けているものがありますか?比較のために使用する必要がある特殊なマッチャーはありますか?通常はArrays.equal()を使用しますが、要素を比較するためにMockitoを使用するように指示する方法はわかりません。提案?

3

1 答え

deepEqualsのmockito matcherはありません。しかし、いくつかのテストヘルパーでコード化することができます。例えば:

public static Collection sameHashes(Collection hashes) {
    class CollectionOfHashesMatcher extends ArgumentMatcher> {
        public boolean matches(Collection

どのようなsoemthing与える必要があります:

verify(mockStore).setWhatever(sameHashes(blobs));
4
追加された
魅力のように働いた。ありがとう。
追加された 著者 Shawn D.,