[java] Mockito를 사용하여 다른 객체의 메소드를 호출 시 원하는 결과를 반환하는 방법은?
Mockito는 Java에서 테스트를 위한 mocking 프레임워크로, 다른 객체의 메소드 호출 결과를 조작하여 원하는 결과를 반환할 수 있습니다. 이를 통해 테스트 환경에서 의존성을 가진 컴포넌트를 쉽게 테스트할 수 있습니다.
아래는 Mockito를 사용하여 다른 객체의 메소드를 호출 시 원하는 결과를 반환하는 방법의 예시입니다.
- Mock 객체 생성하기
먼저, 테스트 대상 객체에서 의존하는 객체를 Mock 객체로 대체해야 합니다. 이를 위해 Mockito의
mock()
메소드를 사용하여 Mock 객체를 생성합니다.
SomeDependency someDependencyMock = Mockito.mock(SomeDependency.class);
- 메소드 결과 조작하기
Mock 객체의 메소드 호출 결과를 조작하여 원하는 결과를 반환하도록 설정합니다. Mockito의
when().thenReturn()
문법을 사용하면 됩니다.
Mockito.when(someDependencyMock.someMethod()).thenReturn(expectedResult);
위 코드에서 someMethod()
는 Mock 객체의 메소드이며, expectedResult
는 원하는 결과입니다. 이렇게 설정된 Mock 객체는 테스트 시 해당 메소드가 호출될 경우 expectedResult
를 반환하게 됩니다.
- 테스트 대상 객체에 Mock 객체 주입하기 마지막으로, 테스트 대상 객체에 Mock 객체를 주입하여 의존성을 해결합니다. 이를 위해 테스트 대상 객체의 생성자나 세터 메소드를 사용합니다.
TestObject testObject = new TestObject(someDependencyMock);
위 코드에서 TestObject
는 테스트 대상 객체이며, 생성자를 통해 Mock 객체를 주입받습니다.
이제 테스트를 실행하면 Mock 객체를 사용하여 원하는 결과를 반환받을 수 있게 됩니다.
Mockito를 통해 다른 객체의 메소드 호출 결과를 조작하는 방법에 대해 알아보았습니다. 이를 활용하여 의존성을 가진 컴포넌트를 쉽게 테스트할 수 있습니다.
참고 자료:
- Mockito 공식문서: https://site.mockito.org/
- Mockito GitHub 페이지: https://github.com/mockito/mockito