[java] Mockito 매처 및 기본 배열

Mockito를 사용하면 인수 목록에 verify()메소드 호출을 byte[]하고 싶지만 이것을 작성하는 방법을 찾지 못했습니다.

 myMethod( byte[] )

나는 단지 anyByteArray()Mockito로 어떻게 할 것인가?



답변

나는 시도 할 것이다 any(byte[].class)


답변

이 시도:

AdditionalMatchers.aryEq(array);


답변

오히려 사용하고 싶습니다 Matchers.<byte[]>any(). 이것은 나를 위해 일했습니다.


답변

Mutanos와 Alecio에 동의합니다. 또한 가능한 한 많은 동일한 메소드 호출을 확인할 수 있습니다 (프로덕션 코드에서 후속 호출을 확인하면 확인 순서는 중요하지 않습니다). 코드는 다음과 같습니다.

import static org.mockito.AdditionalMatchers.*;

    verify(mockObject).myMethod(aryEq(new byte[] { 0 }));
    verify(mockObject).myMethod(aryEq(new byte[] { 1, 2 }));


답변

나는 Matchers.refEq이것을 위해 사용 했다.


답변

인수가 배열 인 경우 Mockito.any ()를 사용할 수 있습니다. 나는 이것을 다음과 같이 사용했다 :

verify(myMock, times(0)).setContents(any(), any());


답변

나를 위해 일한 것은 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);
}