[swift] SwiftGen을 이용한 테스트 코드 작성 방법

SwiftGen은 iOS 및 macOS 앱 개발에서 자동화된 리소스 코드 생성을 도와주는 도구입니다. 이를 사용하면 이미지, 폰트, 색상 등의 리소스에 쉽게 접근할 수 있는 타입 안전한 코드를 자동으로 생성할 수 있습니다.

테스트 코드에서 SwiftGen을 사용하는 방법을 살펴보겠습니다.

SwiftGen 설치

먼저, SwiftGen을 설치해야 합니다. Swift Package Manager를 사용하여 설치할 수 있습니다. 다음 명령을 터미널에 입력해 SwiftGen을 설치합니다.

$ swift package init --type executable

프로젝트 설정

SwiftGen을 사용하기 위해 프로젝트 설정을 해야 합니다. 프로젝트 루트 디렉토리에 swiftgen.yml 파일을 생성하고, 다음과 같이 설정합니다.

input_dir: Resources
output_dir: Generated

위 설정에서 input_dir은 리소스 파일들이 위치한 디렉토리 경로를, output_dir은 SwiftGen이 생성한 코드를 저장할 디렉토리 경로를 의미합니다.

테스트 코드 작성

이제 SwiftGen을 사용하여 리소스에 접근할 타입 안전한 코드를 생성하고, 이를 테스트해보겠습니다.

import XCTest
import SwiftGen

class MyTests: XCTestCase {
    func testResourceAccess() {
        // 리소스에 접근할 때 SwiftGen으로 생성된 코드를 사용합니다.
        let imageName = Assets.Images.myImage.name
        let fontName = Fonts.MyFont.fontName
        let color = Colors.myColor.color
        
        // 테스트를 위한 코드 작성
        // ...
    }
}

위 코드에서 Assets.Images.myImageswiftgen.yml 설정에 따라 생성된 이미지 리소스에 접근하는 코드입니다. Fonts.MyFont.fontName은 폰트 리소스에 접근하는 코드이며, Colors.myColor.color는 색상 리소스에 접근하는 코드입니다.

이제 테스트 메서드에서 리소스에 접근하여 테스트하면 됩니다.

결과 확인

테스트를 실행하고 결과를 확인해봅시다. swift test를 터미널에 입력하여 테스트를 실행합니다. SwiftGen이 정상적으로 동작한다면, 생성된 리소스에 접근하는 코드를 테스트할 수 있습니다.

위와 같이 SwiftGen을 이용하여 테스트 코드를 작성하면, 리소스에 접근할 때 타입 안전한 코드를 사용할 수 있어 안정성이 향상됩니다.

더 자세한 내용은 SwiftGen 공식 문서를 참고하시기 바랍니다.