[java] Mockito를 사용하여 특정 메소드에 전달된 인자들로 다른 메소드를 호출했을 때 인자들 중 특정 범위 내의 값인지 확인하는 방법은?
아래는 ArgumentCaptor
를 사용하여 메소드 호출 시 전달된 인자들 중 특정 범위 내의 값인지 확인하는 예제입니다.
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Mockito;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.verify;
public class ExampleTest {
@Test
public void testMethod() {
// Mock 객체 생성
List<String> mockList = Mockito.mock(List.class);
// ArgumentCaptor 생성
ArgumentCaptor<String> argumentCaptor = ArgumentCaptor.forClass(String.class);
// 메소드 호출
mockList.add("Value");
// 메소드 호출 시 전달된 인자들 캡처
verify(mockList).add(argumentCaptor.capture());
// 캡처한 인자 가져오기
String captured = argumentCaptor.getValue();
// 특정 범위 내의 값인지 확인
assertEquals("Value", captured); // 특정 범위 내의 값인지 확인하는 로직 추가
// 추가적인 검증 로직 작성 가능
}
}
위의 예제에서는 List
인터페이스를 구현한 mockList
를 사용하여 add
메소드를 호출하고, ArgumentCaptor
를 사용하여 전달된 인자를 캡처합니다. 그런 다음, 캡처한 값을 가져와서 특정 범위 내의 값인지 확인할 수 있습니다.
간단한 예제를 통해 Mockito의 ArgumentCaptor
를 사용하여 메소드 호출 시 전달되는 인자들을 검증하는 방법을 알아보았습니다. 추가적인 검증 로직을 작성하여 테스트 케이스를 구성할 수 있습니다. Mockito 문서에서 더 자세한 정보를 확인하실 수 있습니다.