[kotlin] 코틀린에서 람다식과 고차 함수를 사용하여 테스트 코드를 간결하게 작성하는 방법

코틀린은 람다식과 고차 함수를 활용하여 테스트 코드를 간결하고 가독성 있게 작성할 수 있습니다. 이번에는 람다식과 고차 함수를 사용하여 코틀린 테스트 코드를 작성하는 방법에 대해 알아보겠습니다.

람다식 (Lambda Expression)

람다식은 익명 함수를 만들기 위한 간단한 문법으로, 함수의 인자로 전달하거나 함수의 반환 값으로 사용할 수 있습니다.

val sum: (Int, Int) -> Int = { x, y -> x + y }
val result = sum(3, 5) // 결과: 8

위 예제에서 sum(Int, Int) -> Int 타입의 람다식으로, 두 개의 정수를 입력받아 정수를 반환합니다.

고차 함수 (Higher-Order Function)

고차 함수는 함수를 인자로 받거나 함수를 반환하는 함수입니다. 고차 함수를 사용하면 코드를 재사용하고 더 모듈화할 수 있습니다.

fun operation(x: Int, y: Int, op: (Int, Int) -> Int): Int {
    return op(x, y)
}

val result1 = operation(10, 5, { x, y -> x + y }) // 결과: 15
val result2 = operation(20, 7, { x, y -> x * y }) // 결과: 140

위 예제에서 operation 함수는 op라는 고차 함수를 인자로 받아서 실행합니다.

테스트 코드 작성

이제 람다식과 고차 함수를 사용하여 간단한 테스트 코드를 작성해보겠습니다.

fun main() {
    val testCalculator = TestCalculator()

    testCalculator.testAddition()
    testCalculator.testSubtraction()
}

class TestCalculator {
    fun testAddition() {
        val calculator = Calculator()
        val result = calculator.calculate(3, 5, { x, y -> x + y })
        assert(result == 8)
    }

    fun testSubtraction() {
        val calculator = Calculator()
        val result = calculator.calculate(10, 4, { x, y -> x - y })
        assert(result == 6)
    }
}

class Calculator {
    fun calculate(x: Int, y: Int, op: (Int, Int) -> Int): Int {
        return op(x, y)
    }
}

위의 예제에서 TestCalculator 클래스는 Calculator 클래스의 calculate 메서드를 람다식을 활용하여 테스트하는 예제입니다.

람다식을 사용하면 테스트 코드를 간결하게 작성할 수 있으며, 고차 함수를 활용하여 테스트 대상을 유연하게 변경할 수 있습니다.

이상으로 코틀린에서 람다식과 고차 함수를 사용하여 테스트 코드를 간결하게 작성하는 방법에 대해 알아보았습니다.