Mockito를 사용한 테스트 더블(Mock) 작성하기
Mockito는 자바에서 유닛 테스트를 위해 사용되는 인기 있는 모의 객체(Mocking) 프레임워크입니다. 이 포스팅에서는 Mockito를 사용하여 테스트 더블(Mock)을 작성하는 방법에 대해 알아보겠습니다.
1. Mockito 의존성 추가하기
먼저, 해당 프로젝트에 Mockito 의존성을 추가해야 합니다. Gradle 또는 Maven을 사용하는 경우 다음과 같이 의존성을 추가해줍니다.
Gradle:
testImplementation 'org.mockito:mockito-core:3.10.0'
Maven:
xml
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.10.0</version>
<scope>test</scope>
</dependency>
2. Mock 객체 생성하기
Mockito를 사용하여 테스트 더블(Mock)을 생성하려면 Mockito.mock()
메소드를 사용해야 합니다. 예를 들어, UserService라는 인터페이스의 모의 객체(Mock)를 생성하려면 다음과 같이 작성할 수 있습니다.
java
UserService userServiceMock = Mockito.mock(UserService.class);
3. Mock 객체의 동작 정의하기
모의 객체(Mock)를 생성했다면, 해당 모의 객체의 동작을 정의할 수 있습니다. Mockito의 when()
메소드를 사용하여 특정 메소드가 호출될 때 특정 값을 반환하도록 정의할 수 있습니다.
예를 들어, UserService의 getUserById()
메소드가 호출되면 User
객체를 반환하도록 정의하려면 다음과 같이 작성할 수 있습니다.
java
User user = new User("John", 25);
Mockito.when(userServiceMock.getUserById(1)).thenReturn(user);
4. 테스트 수행하기
Mock 객체를 사용하여 테스트를 수행할 수 있습니다. 예를 들어, UserService가 User 객체를 제대로 반환하는지 테스트해보려면 다음과 같이 작성할 수 있습니다.
“`java
User expectedUser = new User(“John”, 25);
User actualUser = userServiceMock.getUserById(1);
assertEquals(expectedUser, actualUser);
“`
5. Mock 객체의 메소드 호출 검증하기
Mockito를 사용하면 모의 객체(Mock)의 메소드 호출 여부 및 호출 횟수 등을 검증할 수 있습니다. verify()
메소드를 사용하여 검증할 수 있습니다.
예를 들어, UserService의 getUserById(1)
메소드가 1번 호출되었는지 검증하려면 다음과 같이 작성할 수 있습니다.
java
Mockito.verify(userServiceMock, Mockito.times(1)).getUserById(1);
위의 코드는 getUserById(1)
메소드가 1번 호출되었는지를 검증하며, 1번 호출되지 않은 경우 테스트가 실패합니다.
위의 내용을 기반으로 Mockito를 사용하여 테스트 더블(Mock)을 작성하는 방법을 알아보았습니다. Mockito는 유닛 테스트를 작성할 때 유용하게 사용될 수 있으므로 적극적으로 활용해보시기 바랍니다.