* XCTest

XCTest는 애플에서 XCode5 부터 소개된 새로운 테스팅 프레임워크입니다. 자세한건 링크를 확인하시기 바랍니다.

해당 샘플 프로젝트는 GitHub에서 다운로드 가능합니다.

XCTest는 기본적으로 프로젝트를 생성할때 기본적으로 생성이 됩니다.

만약 XCode5 미만 버전으로 생성된 프로젝트에서는 수동으로 추가를 하셔야 합니다.
File > New > Target > iOS > Test > iOS Unit Testing Bundle 에서 XCtest를 추가 하실수 있습니다.

참고로 유닛 테스트(unit test)는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차를 말합니다. 즉, 모든 함수와 메소드에 대한 테스트 케이스(Test case)를 작성하는 절차를 말합니다. 이를 통해서 언제라도 코드 변경으로 인해 문제가 발생할 경우, 단시간 내에 이를 파악하고 바로 잡을 수 있도록 해줍니다. 1

* 함수 추가

테스트용 추가 하기 위헤 ViewController.swift에 아래 해당 간단한 함수를 추가 하도록 하겠습니다.

func isString(anything : AnyObject?) -> Bool {
  if let string = anything as? String {
    print(string)
    return true
  }

  return false
}

이 코드는 입력된 객체가 스트링 객체인지 체크하는 간단한 함수 입니다.

* Test Code 추가

이제 유닛 테스트를 위해 XCTestProjectTests.swift에 테스트 함수를 추가 합니다.

func testIsString(){
  let isString = ViewController().isString("string")
  XCTAssertTrue(isString)

  let isNotString = ViewController().isString(123)
  XCTAssertFalse(isNotString)

  let isNotStringNil = ViewController().isString(nil)
  XCTAssertFalse(isNotStringNil)
}

Test 버튼 (단축키 : Command + U) 을 누르면 테스트가 시작됩니다.

테스트가 성공이라면 녹색 체크 아이콘이 나오고 실패 라면 빨강 x표시 아이콘이 표시가 됩니다.

정리하며

지금까지 간단하게 XCTest 사용하는 예제를 만들어 보았습니다. 유닛 테스트를 하는 이유는 많습니다만, 코드 변경에 따른 QA를 자동화 할수 있기 때문에 꼭 사용해야 한다고 생각합니다.

물론 유닛 테스트 작성이 현재 일하는 프로젝트에서 너무 많은 비용을 소모 하게 되어 문제가 되지 않는 범위내에서 하시는게 좋을듯 합니다.

감사합니다.