📱 iOS/Xcode
[XCTest] 유닛 테스트(Unit Test) 사용후기
kyxxn
2024. 7. 24. 02:53
공부한 내용
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): 무조건 실패로 처리, 특정 조건을 만족하지 않을 때 호출ㄱㄴ