[java] Mockito를 사용하여 특정 메소드에 전달된 인자들 중 특정 값을 찾는 방법은?

Mockito를 사용하면 메소드가 호출될 때 전달된 인자들을 검증하고, 특정 값을 찾을 수 있습니다. 다음은 예시 코드입니다.

import static org.mockito.Mockito.*;

@RunWith(MockitoJUnitRunner.class)
public class MyClassTest {

    @Test
    public void testMethod() {
        MyClass myClass = mock(MyClass.class);
        ArgumentCaptor<String> argumentCaptor = ArgumentCaptor.forClass(String.class);

        // 메소드 호출
        myClass.myMethod("Hello", "World");

        // 전달된 인자들 중 특정 값을 찾기 위해 ArgumentCaptor를 사용
        verify(myClass).myMethod(argumentCaptor.capture(), argumentCaptor.capture());

        // 찾고자 하는 값에 접근
        List<String> capturedValues = argumentCaptor.getAllValues();
        String firstValue = capturedValues.get(0);
        String secondValue = capturedValues.get(1);

        // 특정 값 검증
        assertEquals("Hello", firstValue);
        assertEquals("World", secondValue);
    }
}

위의 예시에서는 MyClass라는 클래스의 myMethod 메소드가 호출될 때 전달된 인자들을 검증하는 방법을 보여줍니다. ArgumentCaptor를 사용하여 인자들을 캡처하고, getAllValues를 호출하여 값을 얻을 수 있습니다.

결과적으로, 전달된 인자들 중에서 특정 값을 찾고 검증할 수 있습니다. 이를 통해 테스트하는 메소드의 인자들이 올바른지 확인할 수 있습니다.