Programing

Mockito 매처 및 기본 배열

lottogame 2020. 4. 28. 08:17
반응형

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 }));

또는..

byte[] sampleTextFileAsBytes = new byte[]{anyByte()};

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

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

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


당신은 항상 사용하여 사용자 정의 매처를 만들 수 있습니다 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;
    }
}));

참고 URL : https://stackoverflow.com/questions/10066590/mockito-matcher-and-array-of-primitives

반응형