
Xcode도 새로운 기능이 많이 생겼다. 내가 기다렸던 MS의 코파일럿 같은 기능이 Swift Assist로 추가 되었고 Swift Testing를 통해 테스트를 통해 코드를 작성 할 수 있다. 좀 더 편하게 코드를 작성 할 수 있지만 더 디테일 하게 테스트 하고 컨트롤 할 수 있게 된 것이다.

아이디어를 예측 코드 완성과 빠른 미리보기로 코드로 변환한다. 명시적 모듈로 빌드를 가속화하고, 개선된 진단 기능으로 앱 성능에 대한 깊은 통찰을 제공한다. 새로운 Swift Testing 프레임워크로 쉽게 테스트를 작성할 수 있다.
Swift Testing 는 적은 리소스로 테스트가 가능 하며 좀 더 빠르고 효율적으로 코드를 작성 할 수 있다.
Swift Testing은 Swift 언어로 테스트를 쉽게 작성하고 실행할 수 있게 해주는 라이브러리이다. 아래는 Swift Testing을 사용하는 방법과 그 장점에 대해 쉽게 설명한 내용이다.
Swift Testing을 사용하면 복잡한 테스트 시나리오를 간단한 코드로 작성할 수 있다. 예를 들어, 문자열 비교 테스트를 작성해보자:
@Test
func helloWorld() {
let greeting = "Hello, world!"
#expect(greeting == "Hello") // 테스트 실패: (greeting → "Hello, world!") == "Hello"
}
이 코드는 문자열 greeting이 "Hello"와 같은지 테스트한다. 결과가 다르면 어떤 값이 잘못되었는지 쉽게 알 수 있다.
특정 조건이 충족될 때만 테스트를 실행할 수 있다. 예를 들어, 댓글 기능이 활성화된 경우에만 테스트를 실행할 수 있다:
@Test(.enabled(if: AppFeatures.isCommentingEnabled))
func videoCommenting() async throws {
let video = try await videoLibrary.video(named: "A Beach")
#expect(video.comments.contains("So picturesque!"))
}
이 코드는 AppFeatures.isCommentingEnabled가 참일 때만 실행된다.
테스트를 그룹으로 묶거나 태그를 달아 관리할 수 있다. 예를 들어, 비디오 메타데이터를 테스트하는 경우:
@Test("Check video metadata", .tags(.metadata))
func videoMetadata() {
let video = Video(fileName: "By the Lake.mov")
let expectedMetadata = Metadata(duration: .seconds(90))
#expect(video.metadata == expectedMetadata)
}
이 코드는 metadata 태그가 달린 테스트로, 비디오의 메타데이터를 검증한다.
같은 테스트를 여러 다른 입력값에 대해 반복할 수 있다. 예를 들어, 여러 비디오 이름을 테스트하는 경우:
@Test("Continents mentioned in videos", arguments: [
"A Beach", "By the Lake", "Camping in the Woods"
])
func mentionedContinents(videoName: String) async throws {
let videoLibrary = try await VideoLibrary()
let video = try await videoLibrary.video(named: videoName)
#expect(video.mentionedContinents.count <= 3)
}
이 코드는 세 가지 비디오 이름 각각에 대해 테스트를 실행한다.