UFO ET IT

Mockito : 일반 매개 변수로 확인

ufoet 2020. 11. 23. 20:40
반응형

Mockito : 일반 매개 변수로 확인


Mockito를 사용하면 다음을 수행 할 수 있습니다.

verify(someService).process(any(Person.class));

하지만 어떻게이 문제를 쓰는가 processA가 소요 Collection<Person>대신? 올바르게 작성하는 방법을 알 수 없습니다. 구문 오류가 발생하는 중 ...


시험:

verify(someService).process(Matchers.<Collection<Person>>any());

실제로 IntelliJ는 입력했을 때 자동으로이 수정 사항을 제안했습니다. 안타깝게도이 any()경우 정적 가져 오기를 사용할 수 없습니다.


시도해보십시오 :

verify(someService).process(anyCollectionOf(Person.class));

버전 1.8 Mockito는

public static <T> Collection<T> anyCollectionOf(Class<T> clazz);

자체 메서드를 사용하는 경우 정적 가져 오기를 사용할 수도 있습니다.

private Collection<Person> anyPersonCollection() {
    return any();
}

그런 다음 사용할 수 있습니다

verify(someService).process(anyPersonCollection());

유형 삭제 때문에 이것을 표현할 수 없습니다. 코드로 표현할 수 있더라도 Mockito는 런타임에 확인할 기회가 없었습니다. 다음과 같은 인터페이스를 만들 수 있습니다.

interface PersonCollection extends Collection<Person> { /* nothing */ }

대신 이것을 코드 전체에서 사용하십시오.

편집 : 내가 틀렸다, Mockito는 당신이 원하는 anyCollectionOf (..) 를 가지고 있습니다.

참고 URL : https://stackoverflow.com/questions/6175753/mockito-verifying-with-generic-parameters

반응형