공부한 내용
XCTest, Unit Test
단위 테스트란 ?
기능 단위 별로, 테스트 코드를 작성하는 것
TDD처럼 꼭 테스트 코드를 먼저 작성하진 않아도 됨
즉, 순수하게 테스트 코드를 작성하는 것
단위 테스트 장점
- 문제점 발견
- → 모듈을 고립시켜 각 부분별로 정확한 동작하는지 디버깅이 가능함
- 변경이 쉬움
- → Unit Test를 믿고, 리팩토링을 쉽게 도전할 수 있음
- 통합이 간단
- 유닛 자체의 불확실성을 제거하기에 상향식 테스트 방식에서 유용하다고 함
단위 테스트 작성 방법
- FIRST 속성
- Fast: 빠른 속도로 테스트 수행
- Independent: 서로 독립적으로 실행
- Repeatable: 반복적으로 실행, 순서나 환경이 달라져도 동일한 결과
- Self-Automation: 모든 과정을 자동으로 처리
- Timely: 변경사항을 더욱 빠르게 확인
Unit Test 세팅하기





XCTest의 전체 메소드 동작 순서

Unit Test 환경을 만들면 자동으로 아래 파일이 만들어진다.
그리고 그 순서는 위와같이 동작
import XCTest
final class MyTest: XCTestCase {
override func setUpWithError() throws {
// 여기에 설정 코드를 넣음
// 이 메서드는 클래스의 각 테스트 메서드가 호출되기 전에 호출됨
}
override func tearDownWithError() throws {
// 여기에 정리 코드를 넣음
// 이 메서드는 클래스의 각 테스트 메서드가 호출된 후에 호출됨
}
func testPerformanceExample() throws {
// 성능 테스트 사례의 예
measure {
// 여기에서 시간을 측정하고 싶은 코드를 넣음
}
}
}
XCTest가 제공하는 XCTAssert 메소드
→ 결과 값을 검증하는 방법으로, 이를 통해 테스트 케이스를 작성하고 테스트 할 수 있음
- XCTAssert(expression, message): 조건이 참인지 확인
- XCTAssertTrue(expression, message): 표현식이 참인지 확인
- XCTAssertFalse(expression, message): 표현식이 거짓인지 확인
- XCTAssertEqual(expression1, expression2, message): 두 표현식이 같은지 확인
- XCTAssertNotEqual(expression1, expression2, message): 두 표현식이 같지 않은지 확인
- XCTAssertNil(expression, message): 표현식이 nil인지 확인
- XCTAssertNotNil(expression, message): 표현식이 nil이 아닌지 확인
- XCTFail(message): 무조건 실패로 처리, 특정 조건을 만족하지 않을 때 호출ㄱㄴ
레퍼런스
'📱 iOS > Xcode' 카테고리의 다른 글
[Xcode] Dynamic Library vs Static Library - Multiple Project로 모듈화 공부하기 2편 (0) | 2025.01.17 |
---|---|
[Xcode] Library vs Framework - Multiple Project로 모듈화 공부하기 1편 (2) | 2025.01.15 |
[Xcode] 협업 간 pbxproj 충돌 방지하기 (1) | 2024.05.24 |
[디버깅 회고] 네트워크 통신 공부 중 발생한 보라색 에러 (0) | 2024.05.19 |
[Xcode] .xcconfig 충돌로 인한 Xcode 무한팅김 현상을 겪고서 (0) | 2024.03.22 |