[java] Mockito를 사용하여 특정 메소드에 전달된 인자들로 다른 메소드를 호출했을 때 동적으로 생성된 객체를 테스트하는 방법은?

Mockito를 사용하여 이러한 상황을 테스트하는 방법은 다음과 같습니다.

  1. 먼저 Mockito를 사용하기 위해 의존성을 추가해야 합니다. pom.xml 파일에 다음을 추가합니다.
<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>{Latest Version}</version>
</dependency>
  1. 테스트 코드에서 Mockito를 사용하여 목 객체를 생성합니다. 이 목 객체는 실제 객체를 대신해 호출되는 메소드를 가로채고 동적으로 생성된 객체를 리턴합니다. 예를 들어, 다음과 같이 목 객체를 생성할 수 있습니다.
MyClass myClassMock = Mockito.mock(MyClass.class);
  1. 목 객체를 사용하여 원하는 메소드를 호출할 때 동적으로 생성된 객체를 리턴하도록 설정합니다. 예를 들어, myMethod 메소드를 호출할 때 myOtherMethod 메소드가 동적으로 생성된 객체를 리턴하도록 설정하려면 다음과 같이 작성합니다.
Mockito.when(myClassMock.myMethod(Mockito.anyString(), Mockito.anyInt())).thenReturn(Mockito.mock(OtherClass.class));
  1. 이제 테스트 코드에서 목 객체를 사용하여 원하는 동작을 확인할 수 있습니다. 예를 들어, myMethod 메소드를 호출하면 실제로 myOtherMethod 메소드가 호출되는지 확인할 수 있습니다.
MyClass myClass = new MyClass();
OtherClass otherClass = myClass.myMethod("arg1", 2);
Mockito.verify(myClassMock).myMethod("arg1", 2);

이렇게 Mockito를 사용하여 특정 메소드에 전달된 인자들로 다른 메소드를 호출했을 때 동적으로 생성된 객체를 테스트할 수 있습니다.

더 많은 정보는 Mockito 공식 문서를 참조하시기 바랍니다. (https://site.mockito.org/)