[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 문서에서 더 자세한 정보를 확인하실 수 있습니다.