모키토:제네릭을 사용한 매처 리스트
Mockito의 특징:
when(mock.process(Matchers.any(List.class)));
다음과 같은 경우 경고를 회피 방법process
를 취득하다List<Bar>
대신?
Java 8 이상에서는 다음과 같이 간단합니다.
when(mock.process(Matchers.anyList()));
Java 7 이하에서는 컴파일러에 약간의 도움이 필요합니다.사용하다anyListOf(Class<T> clazz)
:
when(mock.process(Matchers.anyListOf(Bar.class)));
에 더하여anyListOf
위에서는 항상 다음 구문을 사용하여 제네릭을 명시적으로 지정할 수 있습니다.
when(mock.process(Matchers.<List<Bar>>any(List.class)));
Java 8에서는 파라미터에 근거한 타입 추론이 새롭게 가능하기 때문에 Java 8을 사용하고 있다면 다음과 같이 동작할 수 있습니다.
when(mock.process(Matchers.any()));
둘 다 기억 안 나?any()
도 아니다anyList()
는 유형 또는 늘 검사를 포함하여 모든 검사를 적용합니다.Mockito 2.x에서는any(Foo.class)
'어느쪽이든'이라는 의미로 바뀌었다.instanceof
후우" 하지만any()
여전히 "를 포함한 모든 가치"를 의미합니다.null
".
메모: 위는 새로운 버전의 Mockito에서는 이름 충돌을 피하기 위해 ArgumentMatchers로 전환되었습니다.org.hamcrest.Matchers
. 이전 버전의 Mockito는 계속 사용해야 합니다.org.mockito.Matchers
위와 같이
Java 8(버전 7 또는 6) 이전 버전에서는 새로운 ArgumentMatchers 메서드를 사용합니다.anyList:
import static org.mockito.Mockito.*;
import org.mockito.ArgumentMatchers;
verify(mock, atLeastOnce()).process(ArgumentMatchers.<Bar>anyList());
필요했어요anyList()
ArrayList 라고 입력했을 경우, 다음의 조작이 가능하게 됩니다.
(ArrayList<Bar>) ArgumentMatchers.<Bar>anyList()
언급URL : https://stackoverflow.com/questions/10512374/mockito-list-matchers-with-generics
'programing' 카테고리의 다른 글
Vue 2 - 메서드 내에서 계산된 접근 방법 (0) | 2022.07.29 |
---|---|
이클립스 오류: "가져오기 XXX를 확인할 수 없습니다." (0) | 2022.07.29 |
VueJs + Larabel을 사용하여 관계를 가진 데이터를 가져오는 방법 (0) | 2022.07.29 |
Kotlin 어레이를 Java varargs로 변환 (0) | 2022.07.29 |
명령줄에서 Maven Javadoc 플러그인을 비활성화하려면 어떻게 해야 합니까? (0) | 2022.07.29 |