Mockito는 Java와 Kotlin 같은 JVM 기반 언어에서 Mock 객체를 생성하고 다루는 데 사용되는 인기있는 라이브러리입니다. Mockito를 사용하면 객체의 동작을 테스트할 때 실제 응답값을 반환하는 대신 가상으로 응답값을 설정할 수 있습니다. 이를 통해 테스트를 더 쉽게 작성하고 객체 간의 의존성을 제거할 수 있습니다.
Mockito 기본개념
Mockito를 사용하면 Mockito 라이브러리에서 제공하는 mock()
메서드를 호출하여 Mock 객체를 만들 수 있습니다. 그리고 when
과 thenReturn
을 사용해 Mock 객체의 메서드 호출에 대한 응답값을 지정할 수 있습니다.
val mockedList = mock<MutableList<String>>()
`when`(mockedList.get(0)).thenReturn("first")
Mockito를 사용한 다수의 응답값 테스트 방법
Mockito를 사용하여 다수의 응답값을 테스트하려면 thenReturn
대신 thenReturn
의 변형인 thenReturn
, thenReturn
, …, thenReturn
메서드를 사용할 수 있습니다. 이를 통해 순차적으로 다른 응답값을 반환하도록 Mock 객체를 구성할 수 있습니다.
`when`(mockedList.size)
.thenReturn(1)
.thenReturn(2)
.thenReturn(3)
위의 예제에서는 mockedList.size
를 호출할 때 1, 2, 3 순서대로 다른 값이 반환됩니다.
Mockito를 사용한 예외 응답값 테스트 방법
Mockito를 사용하여 예외 응답값을 테스트하려면 thenThrow
메서드를 활용하여 특정 메서드 호출 시 예외를 발생시킬 수 있습니다.
`when`(mockedList.get(1)).thenThrow(IndexOutOfBoundsException("Index: 1, Size: 0"))
위의 코드는 mockedList.get(1)
이 호출될 때 IndexOutOfBoundsException을 발생시킵니다.
요약
Mockito를 사용하면 코틀린에서 다수의 응답값과 예외 응답값을 가진 Mock 객체를 테스트할 수 있습니다. 이를 통해 다양한 시나리오에서의 테스트를 간편하게 작성할 수 있으며, 코드의 견고성을 높일 수 있습니다.
참고 문헌: Mockito 공식 문서