XCTest를 Swift 테스트로 마이그레이션 노트

XCTest를 Swift 테스트로 마이그레이션

스위프트 테스팅은 애플이 WWDC24에서 소개하고 Xcode 16에 포함된 스위프트용 오픈 소스 테스팅 프레임워크입니다. 이 프레임워크는 동시성과 매크로 gibi 현대적인 기능을 사용하며, 애플 플랫폼 외에도 윈도우와 리눅스를 지원합니다. XCTest에서 마이그레이션할 필요는 없지만, 스위프트 테스팅은 스위프트 동시성을 사용하여 프로세스 내에서 테스트를 실행할 수 있는 기능을 포함하여 몇 가지 이점을 제공합니다. 이는 물리적 장치에서 병렬 테스팅을 허용합니다.스위프트 테스팅을 시작하려면 테스트 대상에서 XCTest와 스위프트 테스팅 유닛 테스트를 혼합할 수 있지만, 테스트 내에서 테스팅 프레임워크를 혼합해서는 안 됩니다. 테스트 파일에 "import Testing"을 추가하여 스위프트 테스팅 프레임워크를 가져올 수 있습니다. 애플은 테스트를 그룹화하고, 구조체 또는 클래스에 추가하여 init 메서드를 사용하여 설정 및 해제하는 것을 권장합니다.스위프트 테스팅 테스트는 @Test 매크로를 추가하여 유닛 테스트가 되는 일반적인 스위프트 메서드입니다. 테스트 메서드를 async 또는 throws로 표시하고, 필요한 경우 액터로 분리할 수 있습니다. @Test 속성은 구현을 볼 수 있도록 확장할 수 있는 매크로입니다.스위프트 테스팅은 #expect 및 #require 매크로를 사용하여 AssertionError를 제공하며, 이는 XCTest의 XCTAssert보다 더 유연하고 정보가 풍부한 오류 메시지를 제공합니다. #expect 매크로는 실패한 기대를 로깅하고 테스트를 계속하고, #require 매크로는 오류가 발생하면 테스트 실행을 중지하는 throwing 버전입니다.또한 Issue.record를 사용하여 조건을 평가하지 않고 테스트를 실패시키는 것이 가능합니다. 이는 XCTest의 XCTFail과 유사합니다. 전반적으로, 스위프트 테스팅은 개선된 동시성 지원 및 더 유연한 AssertionError를 포함하여 XCTest보다 몇 가지 이점을 제공합니다.