이 포스팅은 iOS Experience 시리즈 18 편 중 13 번째 글 입니다.
목차
XCTest란?
알아야 하는 점
- 앞에 test로 시작해야 한다. 그렇지 않으면 Xcode가 잡지를 못한다.
- 테스트 전에 항상 시작해야 하는 것이 있다면
setUp
함수를 오버라이딩하여 구현한다.
Target 설정
- 각각의 파일의 Target membership을 추가하는 방법으로 가능하다.
Test 시 simulator 뜨지 않게 하는 방법
- 프로젝트
- general
- test Target
- host application -> none으로 변경
Error test
func test_로봇1개이상추가실패() {
let playerManager = PlayerManager()
var thrownError: Error?
let robot1 = Player(type: .robot)
let robot2 = Player(type: .robot)
XCTAssertNoThrow(try playerManager.participate(player: robot1))
XCTAssertThrowsError(try playerManager.participate(player: robot2)) {
thrownError = $0
}
XCTAssertTrue(thrownError is PlayerManagerError, "잘못된 에러 타입 : \(type(of: thrownError))")
XCTAssertEqual(thrownError as? PlayerManagerError, .CapacityFullError)
}
- 에러를 받는다.
- 에러의 타입을 확인한다.
- 에러의 케이스를 확인한다.