Unit test에 대해서

  • Xcode의 Unit test를 통해서 앱의 확장 등 기능 변경을 단위 별로 테스트할 수 있다.
  • Unit test를 하는 이유는 앱의 어떠한 변화라도 미리 체크해보고 버그를 미연에 방지할 수 있기 때문이다.

Unit test를 추가하는 방법

  1. 프로젝트를 처음 만들 때 Unit test를 포함하는 방법
  2. 프로젝트를 만든 후 프로젝트 네비게이터에서 command + 6 를 누르고 왼쪽 하단의 New Unit Test Target…으로 추가하는 방법

Unit test의 본격적인 사용 방법

  • 메인 뷰 컨트롤러에 두 수를 빼는 메소드가 있다고 가정한다.
class ViewController: UIViewController {
    
    var firstNum: Int!
    var secondNum: Int!
    
    func subtract(from: Int, this: Int) -> Int {
        return from - this
    }
}

  • 이 메소드를 테스트 하기 위해서 다음과 같이 설정한다.
import XCTest
@testable import UnitTestPrac

class UnitTestPracTests: XCTestCase {
    
    var testObject: ViewController!
    
    override func setUp() {
        super.setUp()
        // 테스트 준비
        testObject = ViewController()
    }
    
    override func tearDown() {
        testObject = nil
        // 테스트 종료
        super.tearDown()
    }
    
    func testCalculation() {
        // Given
        testObject.firstNum = 3
        testObject.secondNum = 10
        
        // When
        let result = testObject.subtract(from: testObject.firstNum, this: testObject.secondNum)
        
        // Then
        XCTAssertEqual(result, -7, "계산 실패")
    }
}
  • 다음과 같은 경우 XCTAssertEqual 메소드에서 result와 내가 예상한 -7이 일치하기 때문에 테스트가 통과된다.
  • 만약 result와 내가 예상한 값이 일치하지 않는 경우 미리 입력해둔 “계산 실패”가 출력되어 나름대로의 방법으로 디버깅을 시도하면 된다.

  • 성공시

  • 실패시