[swift] Quick/Nimble과 Carthage를 함께 사용하기

Swift 프로젝트에서 유닛 테스트를 작성할 때 종종 Quick과 Nimble 라이브러리를 사용합니다. Quick은 행위 기반 테스트 프레임워크이고, Nimble은 테스트 결과를 좀 더 가독성 있게 작성할 수 있도록 도와줍니다. 이러한 라이브러리를 Carthage를 사용하여 프로젝트에 추가하는 방법을 알아보겠습니다.

Carthage 설치하기

Carthage는 Swift 앱에서 의존성을 관리하고 프레임워크를 빌드하기 위한 탄력적인 도구입니다. Carthage를 설치하기 위해 다음 명령어를 실행합니다:

$ brew update
$ brew install carthage

Quick과 Nimble 라이브러리 추가하기

Carthage를 사용하여 프로젝트에 Quick과 Nimble 라이브러리를 추가해보겠습니다. 먼저 프로젝트 폴더의 Cartfile을 열고 다음 내용을 추가합니다:

github "Quick/Quick" "x.x.x"
github "Quick/Nimble" "x.x.x"

여기서 “x.x.x”는 사용하려는 Quick과 Nimble 라이브러리의 버전을 나타냅니다. 원하는 버전을 선택하여 사용하도록 합니다.

그런 다음 터미널에서 프로젝트 폴더로 이동한 후 다음 명령어를 실행하여 라이브러리를 다운로드하고 빌드합니다:

$ carthage update

이 명령어를 실행한 후 Carthage 폴더와 Cartfile.resolved 파일이 프로젝트 폴더 안에 생성됩니다.

프로젝트 설정 변경하기

Carthage를 사용하여 Quick과 Nimble 라이브러리를 추가한 후에는 프로젝트 설정을 변경해야 합니다. Xcode에서 프로젝트를 열고 다음 단계를 따릅니다:

  1. 타겟을 선택한 후, General 탭으로 이동합니다.
  2. Linked Frameworks and Libraries 섹션으로 이동합니다.
  3. ”+” 버튼을 클릭하고 Carthage 폴더에 있는 Quick.framework과 Nimble.framework을 선택합니다.

테스트 코드 작성하기

이제 Carthage를 사용하여 Quick과 Nimble 라이브러리를 프로젝트에 추가했으므로, 유닛 테스트를 작성해보겠습니다. 예를 들어, Calculator라는 클래스를 테스트하는 코드를 작성해보겠습니다.

import Quick
import Nimble

class CalculatorSpec: QuickSpec {
  override func spec() {
    describe("Calculator") {
      var calculator: Calculator!
      
      beforeEach {
        calculator = Calculator()
      }
      
      it("should add two numbers correctly") {
        let result = calculator.add(2, 3)
        expect(result).to(equal(5))
      }
      
      it("should subtract two numbers correctly") {
        let result = calculator.subtract(5, 3)
        expect(result).to(equal(2))
      }
    }
  }
}

위의 코드는 QuickSpec을 상속하는 CalculatorSpec 클래스를 정의하고, Calculator 클래스의 addsubtract 메소드를 테스트하는 코드입니다. expect 함수를 사용하여 예상 결과와 실제 결과를 비교하고, to(equal:) 메소드를 사용하여 값이 같은지 확인합니다.

결론

Carthage를 사용하여 Swift 프로젝트에 Quick과 Nimble 라이브러리를 추가하고, 유닛 테스트를 작성하는 방법에 대해 알아보았습니다. 이러한 라이브러리를 사용하면 코드의 품질과 안정성을 테스트할 수 있으며, Carthage를 통해 라이브러리를 관리하여 프로젝트를 보다 효율적으로 구성할 수 있습니다.


참조: