[java] Mockito와 JUnit을 함께 사용하여 테스트 케이스를 작성하는 방법은?

테스트 케이스를 작성하는 것은 소프트웨어 개발 과정에서 매우 중요합니다. Mockito와 JUnit은 자바에서 테스트하기 위해 널리 사용되는 두 가지 도구입니다. Mockito는 모의 객체를 만들고 테스트 중에 호출하고 검증하기 위한 프레임워크이며, JUnit은 테스트를 작성하고 실행하기 위한 프레임워크입니다.

이 문서에서는 Mockito와 JUnit을 함께 사용하여 테스트 케이스를 작성하는 방법에 대해 알아보겠습니다.

Mockito 및 JUnit 종속성 추가하기

먼저, Mockito와 JUnit을 사용하기 위해 프로젝트에 해당 종속성을 추가해야합니다. 종속성 관리 도구인 Maven을 사용한다고 가정하고, pom.xml 파일에 다음 종속성을 추가합니다:

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

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.8.0</version>
    <scope>test</scope>
</dependency>

위의 종속성은 Mockito 3.11.2와 JUnit Jupiter 5.8.0을 사용합니다. 버전은 실제 프로젝트에 맞게 조정해야합니다.

모의 객체 만들기

Mockito를 사용하여 모의 객체를 만들기 위해서는 @Mock 어노테이션을 사용해야합니다. 예를 들어, 다음과 같이 모의 객체를 만들 수 있습니다:

import org.mockito.Mock;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;

@ExtendWith(MockitoExtension.class)
public class ExampleTest {

    @Mock
    private UserService userService;

    @Test
    public void testExample() {
        // 모의 객체를 사용하여 테스트 로직 작성
    }
}

위의 예제에서 userService라는 모의 객체를 만들었습니다.

모의 객체 사용하기

모의 객체를 사용하여 테스트할 때는 Mockito의 검증 및 호출 메소드를 사용할 수 있습니다. 아래는 예시입니다:

import static org.mockito.Mockito.*;

@Test
public void testExample() {
    // 모의 객체의 메소드 호출 및 반환 값 설정
    when(userService.getUserCount()).thenReturn(5);
    
    // 모의 객체의 메소드 호출 검증
    verify(userService).getUserCount();
}

위의 예제에서 when(userService.getUserCount()).thenReturn(5) 코드는 getUserCount 메소드가 호출될 때 5를 반환하도록 설정합니다.

또한 verify(userService).getUserCount() 코드는 getUserCount 메소드가 호출되었는지 검증합니다.

결론

이제 Mockito와 JUnit을 함께 사용하여 테스트 케이스를 작성하는 방법을 알게 되었습니다. 모의 객체를 만들고 설정하며, 메소드 호출을 검증할 수 있습니다. 이를 통해 소프트웨어 개발 과정에서 품질을 높이고 버그를 줄일 수 있습니다.

더 자세한 내용은 Mockito와 JUnit 공식 문서를 참조하시기 바랍니다.

참고 문헌: