[java] Mockito를 사용하여 인터페이스를 테스트하는 방법은?

먼저, Mockito를 프로젝트에 추가해야 합니다. Maven을 사용하고 있다면 pom.xml 파일에 다음 의존성을 추가합니다:

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>3.7.7</version>
    <scope>test</scope>
</dependency>

그리고 Gradle을 사용하고 있다면 build.gradle 파일에 다음 의존성을 추가합니다:

testImplementation 'org.mockito:mockito-core:3.7.7'

이제 Mockito를 사용하여 인터페이스를 테스트해보겠습니다. 예를 들어, 다음과 같은 Calculator 인터페이스가 있다고 가정해봅시다:

public interface Calculator {
    int add(int a, int b);
}

이 인터페이스를 구현한 클래스를 테스트하기 위해 Mockito를 사용하려면 다음과 같은 단계를 따릅니다:

  1. Calculator 인터페이스의 목(mock) 객체를 생성합니다:
Calculator calculatorMock = Mockito.mock(Calculator.class);
  1. 목 객체에 대해 호출이 발생할 때 어떤 값을 반환할지 지정합니다:
Mockito.when(calculatorMock.add(2, 3)).thenReturn(5);
  1. 테스트할 코드에서 목 객체를 사용합니다. 예를 들어:
int result = calculatorMock.add(2, 3);

이제 result 변수에는 5가 저장됩니다.

  1. 목 객체에 대해 원하는 호출이 발생했는지를 검증할 수도 있습니다. 예를 들어:
Mockito.verify(calculatorMock).add(2, 3);

위 코드는 calculatorMock 객체의 add(2, 3) 메소드 호출이 한 번 발생했는지를 검증합니다.

이렇게 Mockito를 사용하여 인터페이스를 테스트할 수 있습니다. Mockito의 다양한 기능을 사용하여 보다 복잡한 테스트 케이스를 작성할 수도 있습니다. Mockito 공식 문서(https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html)에서 자세한 내용을 확인할 수 있습니다.