[java] Mockito를 사용하여 특정 메소드에 전달된 인자들로 다른 메소드를 호출했을 때 특정 값을 인자로 전달하는 방법은?
// 모키토(Mockito) 객체 생성
SomeClass someObj = Mockito.mock(SomeClass.class);
// 특정 메소드에 전달될 인자 값 설정
ArgumentCaptor<SomeType> captor = ArgumentCaptor.forClass(SomeType.class);
Mockito.doNothing().when(someObj).someMethod(captor.capture());
// 특정 메소드 호출 시 다른 메소드 호출 및 인자 전달
someObj.someMethod(new SomeType("argument1"));
// 다른 메소드에서 전달될 값을 확인
SomeType capturedArg = captor.getValue();
위의 예제에서 SomeClass
는 Mock 객체로 생성하였습니다. 그리고 ArgumentCaptor
를 사용하여 someMethod
에 전달되는 인자 값을 캡처하도록 설정하였습니다.
이후에 someMethod
를 호출하면 Mock 객체는 실제로 다른 메소드를 호출하지 않지만, captor.capture()
에 의해 전달되는 인자를 캡처합니다.
캡처된 인자는 captor.getValue()
를 통해 확인할 수 있습니다. 이를 활용하여 다른 메소드로 인자를 전달할 수 있습니다.
더 자세한 내용은 Mockito의 공식 문서를 참조하시기 바랍니다. 링크