Java 제네릭에 대한 작은 팁
ArgumentCaptor를 사용하여 아래와 같이 모의 메서드에서 매개변수를 캡처합니다
ArgumentCaptor<List<Foo>> fooCaptor = ArgumentCaptor.forClass(List.class);
오류 보고
Error:(89, 86) java: incompatible types: org.mockito.ArgumentCaptor<java.util.List> cannot be converted to org.mockito.ArgumentCaptor<java.util.List<com.myapp.model.Foo>>
해결책
Mockito의 상위 버전 사용--mockito-core-2.0.36-beta
코드 비교
mockito-core-1.0.19
public static <T> ArgumentCaptor<T> forClass(Class<T> clazz) { return new ArgumentCaptor<T>(clazz); }
mockito-core-2.0.36-beta
public static <U,S extends U> ArgumentCaptor<U> forClass(Class<S> clazz) { return new ArgumentCaptor<U>(clazz); }