반응형
Mockito Matcher 및 원시 요소 배열
모키토와 함께라면verify()
과의 메서드 콜.byte[]
근데 어떻게 써야 할지 모르겠어요.
myMethod( byte[] )
난 그냥 이런걸 원해anyByteArray()
어떻게 모키토와 함께 그것을 할 수 있을까요?
노력하겠습니다.any(byte[].class)
이것을 시험해 보세요.
AdditionalMatchers.aryEq(array);
나는 차라리 그것을 사용하고 싶습니다.Matchers.<byte[]>any()
이건 나한테 효과가 있었어.
나는 무타노스와 알레시오에 동의한다.또, 가능한 한 많은 같은 메서드 콜을 체크할 수 있습니다(제품 코드의 후속 콜을 검증하는 경우는, 검증의 순서는 문제가 되지 않습니다).코드는 다음과 같습니다.
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());
커스텀 매처는 언제든지 작성할 수 있습니다.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;
}
}));
제가 제일 잘했던 건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);
}
언급URL : https://stackoverflow.com/questions/10066590/mockito-matcher-and-array-of-primitives
반응형
'programing' 카테고리의 다른 글
X초마다 "hello world" 인쇄 (0) | 2023.01.24 |
---|---|
screenX/Y, clientX/Y 및 pageX/Y의 차이점은 무엇입니까? (0) | 2023.01.24 |
포인터 산술 (0) | 2023.01.24 |
MariaDB 컴파일 오류 발생(GnuTLS를 찾을 수 없지만 설치됨) (0) | 2023.01.24 |
OS X 10.7에서 Mysql 명령을 찾을 수 없습니다. (0) | 2023.01.24 |