[java] Mockito를 사용하여 다른 객체의 메소드를 호출 시 원하는 결과를 반환하는 방법은?

Mockito는 Java에서 테스트를 위한 mocking 프레임워크로, 다른 객체의 메소드 호출 결과를 조작하여 원하는 결과를 반환할 수 있습니다. 이를 통해 테스트 환경에서 의존성을 가진 컴포넌트를 쉽게 테스트할 수 있습니다.

아래는 Mockito를 사용하여 다른 객체의 메소드를 호출 시 원하는 결과를 반환하는 방법의 예시입니다.

  1. Mock 객체 생성하기 먼저, 테스트 대상 객체에서 의존하는 객체를 Mock 객체로 대체해야 합니다. 이를 위해 Mockito의 mock() 메소드를 사용하여 Mock 객체를 생성합니다.
SomeDependency someDependencyMock = Mockito.mock(SomeDependency.class);
  1. 메소드 결과 조작하기 Mock 객체의 메소드 호출 결과를 조작하여 원하는 결과를 반환하도록 설정합니다. Mockito의 when().thenReturn() 문법을 사용하면 됩니다.
Mockito.when(someDependencyMock.someMethod()).thenReturn(expectedResult);

위 코드에서 someMethod()는 Mock 객체의 메소드이며, expectedResult는 원하는 결과입니다. 이렇게 설정된 Mock 객체는 테스트 시 해당 메소드가 호출될 경우 expectedResult를 반환하게 됩니다.

  1. 테스트 대상 객체에 Mock 객체 주입하기 마지막으로, 테스트 대상 객체에 Mock 객체를 주입하여 의존성을 해결합니다. 이를 위해 테스트 대상 객체의 생성자나 세터 메소드를 사용합니다.
TestObject testObject = new TestObject(someDependencyMock);

위 코드에서 TestObject는 테스트 대상 객체이며, 생성자를 통해 Mock 객체를 주입받습니다.

이제 테스트를 실행하면 Mock 객체를 사용하여 원하는 결과를 반환받을 수 있게 됩니다.

Mockito를 통해 다른 객체의 메소드 호출 결과를 조작하는 방법에 대해 알아보았습니다. 이를 활용하여 의존성을 가진 컴포넌트를 쉽게 테스트할 수 있습니다.

참고 자료: