[java] Mockito를 사용하여 특정 메소드에 전달된 인자들로 다른 메소드를 호출했을 때 다른 Mock 객체를 리턴하는 방법은?
import static org.mockito.Mockito.*;

// Mock 객체 생성
SomeClass someMock = mock(SomeClass.class);

// 다른 Mock 객체 생성
OtherClass otherMock = mock(OtherClass.class);

// 특정 메소드 호출 시 다른 메소드 호출할 때 다른 Mock 객체 리턴하기
when(someMock.someMethod(eq("arg1"), anyInt()))
    .thenReturn(otherMock);

// 특정 메소드 호출 시 다른 메소드 호출할 때 리턴되는 값 설정하기
when(otherMock.someOtherMethod()).thenReturn("mocked value");

// 테스트 수행
String result = someMock.someMethod("arg1", 2);

위의 코드에서는 SomeClass라는 클래스를 Mock 객체로 생성한 후, 이 객체의 someMethod 메소드가 호출될 때 'arg1'2라는 인자들로 OtherClass라는 다른 Mock 객체를 리턴하도록 설정하였습니다. 그리고 OtherClasssomeOtherMethod 메소드가 호출될 때 mocked value라는 값을 리턴하도록 설정하였습니다.

마지막으로 someMethod를 호출하여 결과를 확인하는데, 이때 리턴되는 값은 otherMock가 됩니다.

이렇게 Mockito를 사용하여 특정 메소드에 전달된 인자들로 다른 메소드를 호출할 때 다른 Mock 객체를 리턴하는 기능을 구현할 수 있습니다.

자세한 내용은 Mockito 공식 문서를 참고하시기 바랍니다. Mockito Documentation