[swift] Swift Sourcery에서 제공하는 테스트 전환 기능 소개

Swift Sourcery는 Swift 언어를 사용하여 코드 생성을 자동화하는 도구입니다. 이 도구는 개발자가 반복적이고 지루한 작업을 줄여주며, 테스트 코드 작성에 필요한 번거로움을 해결할 수 있는 다양한 기능을 제공합니다. 그 중에서도 테스트 전환 기능은 특히 유용하며, 이번 글에서는 그 기능에 대해 소개하겠습니다.

테스트 전환 기능이란?

테스트 전환은 소스 코드에서 테스트를 작성하지 않았던 메서드들을 자동으로 테스트 가능한 형태로 변환해주는 기능입니다. 개발자는 소스 코드에서 직접 테스트 코드를 작성하지 않아도, Sourcery를 통해 자동으로 테스트 코드를 생성할 수 있습니다. 이를 통해 개발자는 테스트에 대한 부담을 줄일 수 있으며, 코드의 품질과 안정성을 향상시킬 수 있습니다.

사용 방법

테스트 전환 기능을 사용하기 위해서는 다음의 단계를 따르면 됩니다.

  1. Sourcery를 설치하고 프로젝트에 통합합니다.
  2. 테스트 전환을 원하는 소스 코드 파일에 // sourcery: testable 주석을 추가합니다.
  3. Sourcery를 실행하고 테스트 코드를 생성합니다.
// sourcery: testable
class MyClass {
    func doSomething() {
        // Some logic here
    }
}

위의 코드에서는 MyClass// sourcery: testable 주석을 추가했습니다. 이 주석이 추가된 클래스의 메서드들은 테스트 코드로 전환될 대상으로 선택됩니다.

테스트 코드 생성 결과

Sourcery를 실행하여 테스트 코드를 생성하면 다음과 같은 형태의 코드가 생성됩니다.

import XCTest

@testable import MyProject

class MyClassTests: XCTestCase {

    var sut: MyClass!

    override func setUp() {
        super.setUp()
        sut = MyClass()
    }

    override func tearDown() {
        sut = nil
        super.tearDown()
    }

    func testDoSomething() {
        // Test logic here
    }
}

위 코드에서는 MyClassdoSomething() 메서드를 테스트하는 testDoSomething() 메서드가 생성되었습니다. 또한, XCTest 프레임워크를 사용하여 테스트 클래스가 생성되었습니다. 이렇게 생성된 테스트 코드를 사용하여 MyClass의 각각의 기능들을 쉽게 테스트할 수 있습니다.

결론

Swift Sourcery의 테스트 전환 기능을 사용하면 개발자는 번거로운 테스트 코드 작성을 자동화할 수 있습니다. 이를 통해 코드의 품질과 안정성을 향상시킬 수 있으며, 개발 생산성을 높일 수 있습니다. 자동 생성된 테스트 코드를 사용하여 소스 코드의 각 기능들을 확실히 테스트할 수 있습니다. 따라서, Swift 개발을 진행하는 개발자라면 Swift Sourcery의 테스트 전환 기능을 적극적으로 활용해보는 것을 권장합니다.

참고 문서