[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 객체를 리턴하도록 설정하였습니다. 그리고 OtherClass
의 someOtherMethod
메소드가 호출될 때 mocked value
라는 값을 리턴하도록 설정하였습니다.
마지막으로 someMethod
를 호출하여 결과를 확인하는데, 이때 리턴되는 값은 otherMock
가 됩니다.
이렇게 Mockito를 사용하여 특정 메소드에 전달된 인자들로 다른 메소드를 호출할 때 다른 Mock 객체를 리턴하는 기능을 구현할 수 있습니다.
자세한 내용은 Mockito 공식 문서를 참고하시기 바랍니다. Mockito Documentation