Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Java/자바] Mockito의 @Mock 애노테이션 본문
Mockito의 `@Mock` 애노테이션은 단위 테스트에서 가짜 객체(Mock 객체)를 생성할 때 사용됩니다. 이를 통해 외부 의존성을 가짜 객체로 대체하여 테스트의 격리성을 확보하고, 테스트를 더욱 간편하게 작성할 수 있습니다.
설정 및 예제 코드
Mockito를 사용하기 위해서는 먼저 Maven 또는 Gradle과 같은 의존성 관리 도구를 통해 Mockito 라이브러리를 프로젝트에 추가해야 합니다. 아래는 Maven을 사용하는 경우의 의존성 설정 예시입니다.
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.9.0</version>
<scope>test</scope>
</dependency>
이제 @Mock 애노테이션을 사용하여 테스트 클래스에서 Mock 객체를 생성할 수 있습니다. 아래 예제에서는 UserService 클래스를 테스트하며, UserService가 의존하는 UserRepository를 Mock 객체로 대체합니다.
import org.mockito.Mock;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.mockito.Mockito.when;
public class UserServiceTest {
@Mock
private UserRepository mockUserRepository;
private UserService userService;
@BeforeEach
public void setUp() {
mockUserRepository = Mockito.mock(UserRepository.class);
userService = new UserService(mockUserRepository);
}
@Test
public void testGetUserById() {
// Mock 객체의 동작 정의
when(mockUserRepository.findById(1L)).thenReturn(new User(1L, "John Doe"));
// 테스트 수행
User user = userService.getUserById(1L);
// 검증
assertNotNull(user);
assertEquals("John Doe", user.getName());
}
}
출력 결과
// Mock 객체의 findById 메서드 호출에 대한 동작 정의
when(mockUserRepository.findById(1L)).thenReturn(new User(1L, "John Doe"));
// 테스트 수행
User user = userService.getUserById(1L);
// 검증
assertNotNull(user);
assertEquals("John Doe", user.getName());
'프로그래밍' 카테고리의 다른 글
[Vue] reactive 에서 배열 타입 지정하기 (0) | 2024.03.20 |
---|---|
톰캣(Tomcat)과 커넥션풀(DBCP)을 이용한 데이터베이스 연결 설정하기 (0) | 2024.03.20 |
[Java/자바] Mockito를 활용한 단위 테스트 (0) | 2024.03.20 |
[Java/자바] Generics(제네릭) 이해하기 (0) | 2024.03.20 |
Java에서 BufferedReader와 BufferedWriter 사용하기 (0) | 2024.03.20 |