코틀린을 사용하여 개발하다 보면 다양한 클래스를 테스트해야 할 때가 있습니다. 특히 서비스나 매니저 클래스는 핵심 비즈니스 로직을 포함하고 있는데, 이러한 클래스를 테스트하기 위해서는 외부 의존성을 모의(mock)로 대체할 수 있는 방법이 필요합니다. 이때 Mockito를 활용하여 단위 테스트를 진행할 수 있습니다.
Mockito 라이브러리 추가
우선 build.gradle 또는 build.gradle.kts 파일에 Mockito 라이브러리를 추가해야 합니다.
// build.gradle
dependencies {
testImplementation("org.mockito:mockito-kotlin:3.2.0")
}
서비스나 매니저 클래스의 단위 테스트 작성
다음으로는 Mockito를 사용하여 서비스나 매니저 클래스의 단위 테스트를 작성할 수 있습니다. 아래는 간단한 예시입니다.
// 테스트 대상 클래스
class MyService(private val userRepository: UserRepository) {
fun getUser(id: Long): User? {
return userRepository.findUserById(id)
}
}
// Mockito를 사용한 테스트
class MyServiceTest {
private val userRepository = mock<UserRepository>()
private val myService = MyService(userRepository)
@Test
fun `test getUser`() {
val user = User(id = 1, name = "John")
`when`(userRepository.findUserById(1)).thenReturn(user)
val result = myService.getUser(1)
assertEquals(user, result)
}
}
위 예시에서는 Mockito를 사용하여 UserRepository
의존성을 대체하고, MyService
클래스의 getUser
메서드를 테스트하는 방법을 보여줍니다.
주의: Mockito의 mock
함수를 사용하기 위해서는 org.mockito.kotlin.mockito
패키지를 임포트해야 합니다.
이렇게 Mockito를 활용하면 외부 의존성을 가진 클래스의 단위 테스트를 보다 간편하게 작성할 수 있습니다.
마무리
이렇게하여 Mockito를 코틀린으로 사용하여 서비스나 매니저 클래스의 단위 테스트를 쉽게 작성하는 방법을 알아보았습니다. Mockito를 사용하면 외부 의존성을 가진 클래스의 테스트를 보다 쉽게 작성할 수 있으며, 테스트 코드의 가독성과 유지보수성을 높일 수 있습니다.
더 많은 Mockito 기능 및 활용 방법은 Mockito 공식 문서에서 확인할 수 있습니다.
Happy testing! 🚀