[kotlin] 코틀린에서 람다식과 고차 함수를 사용하여 모의(mock) 테스트를 구현하는 방법
람다식과 고차 함수는 코틀린에서 강력한 기능을 제공합니다. 특히, 모의(mock) 테스트를 작성하는 데 유용하게 활용할 수 있습니다.
람다식과 고차 함수
람다식
람다식은 함수를 간결하게 표현하는 방법으로, 중괄호로 감싸진 파라미터 목록 뒤에 ->
를 붙인 형태로 표현됩니다.
예를 들어, 다음은 인자로 받은 함수에 1을 더해 반환하는 고차 함수를 정의한 것입니다:
val addOne: (Int) -> Int = { it + 1 }
고차 함수
고차 함수는 다른 함수를 인자로 받거나 함수를 반환하는 함수를 말합니다. 이를 통해 함수형 프로그래밍의 장점을 활용할 수 있습니다.
예를 들어, 다음은 고차 함수 operateOnNumber
를 정의하여 다른 함수를 파라미터로 받아 실행하는 예시입니다:
fun operateOnNumber(number: Int, operation: (Int) -> Int): Int {
return operation(number)
}
모의(mock) 테스트 구현
모의(mock) 테스트는 외부 의존성을 가짜 객체로 대체하여 테스트하는 기법입니다.
람다식과 고차 함수를 활용하면 모의 테스트를 보다 간편하게 작성할 수 있습니다. 예를 들어, 다음은 모의 객체를 생성하고 특정 동작을 가로채는 방법을 보여줍니다:
class MyDependency {
fun getData(): String {
// 외부 리소스에 접근하여 데이터를 가져옴
}
}
class MyClass(private val dependency: MyDependency) {
fun performActionUsingDependency(): String {
val mockData = "Mocked Data"
val result = dependency.getData { mockData } // 람다식을 통해 모의 데이터 반환
return "Result: $result"
}
}
위의 예시에서 MyDependency
클래스의 getData
메서드에서 실제 외부 리소스 대신 람다식을 사용하여 모의 데이터를 반환하고 있습니다.
람다식과 고차 함수를 사용하면 모의(mock) 테스트를 구현하고 외부 의존성을 모의(mock) 객체로 대체하는 작업을 쉽게 할 수 있습니다.
이와 같이 모의(mock) 테스트를 통해 외부 의존성을 가진 코드를 안정적으로 테스트할 수 있도록 도와주는 람다식과 고차 함수의 강력한 기능을 활용할 수 있습니다.