270

verify()Mockitoを使用して、引数リストにメソッドを呼び出したいのですが、byte[]これを作成する方法が見つかりませんでした。

 myMethod( byte[] )

私はただanyByteArray()、Mockitoでそれを行う方法のようなものが欲しいですか?

4

8 に答える 8

508

やってみますany(byte[].class)

于 2012-04-08T21:42:26.507 に答える
42

これを試して:

AdditionalMatchers.aryEq(array);
于 2014-05-30T11:46:11.120 に答える
14

むしろ使用したいMatchers.<byte[]>any()です。これは私のために働いた。

于 2015-01-29T13:42:32.577 に答える
12

MutanosとAlecioに同意します。さらに、できるだけ多くの同一のメソッド呼び出しをチェックできます(本番コードで後続の呼び出しを検証する場合、検証の順序は重要ではありません)。コードは次のとおりです。

import static org.mockito.AdditionalMatchers.*;

    verify(mockObject).myMethod(aryEq(new byte[] { 0 }));
    verify(mockObject).myMethod(aryEq(new byte[] { 1, 2 }));
于 2015-10-25T09:53:09.343 に答える
2

私はこれに使用Matchers.refEqしました。

于 2018-02-16T19:36:03.033 に答える
0

引数が配列の場合もMockito.any()を使用できます。私はそれをこのように使用しました:

verify(myMock, times(0)).setContents(any(), any());
于 2016-07-05T10:55:57.977 に答える
0

を使用して、いつでもカスタムマッチャーを作成できますargThat

Mockito.verify(yourMockHere).methodCallToBeVerifiedOnYourMockHere(ArgumentMatchers.argThat(new ArgumentMatcher<Object>() {
    @Override
    public boolean matches(Object argument) {
        YourTypeHere[] yourArray = (YourTypeHere[]) argument;
        // Do whatever you like, here is an example:
        if (!yourArray[0].getStringValue().equals("first_arr_val")) {
            return false;
        }
        return true;
    }
}));
于 2018-10-02T14:42:42.970 に答える
0

私のために働いたのはorg.mockito.ArgumentMatchers.isA

例えば:

isA(long[].class)

それはうまくいきます。

相互の実装の違いは次のとおりです。

public static <T> T any(Class<T> type) {
    reportMatcher(new VarArgAware(type, "<any " + type.getCanonicalName() + ">"));
    return Primitives.defaultValue(type);
}

public static <T> T isA(Class<T> type) {
    reportMatcher(new InstanceOf(type));
    return Primitives.defaultValue(type);
}
于 2019-10-28T16:30:26.343 に答える