guide-swift-testing
Guide Skill — This is an expert workflow/pattern guide, not API reference documentation. Originally from twostraws/Swift-Testing-Agent-Skill by Paul Hudson. MIT License.
Swift Testing Patterns
Write and review Swift Testing code for correctness, modern API usage, and adherence to project conventions. Report only genuine problems — do not nitpick or invent issues.
Core Instructions
- Target Swift 6.2 or later, using modern Swift concurrency.
- Swift Testing does not support UI tests — XCTest must be used there.
- Do not rewrite existing XCTest to Swift Testing unless requested.
Review Process
- Ensure tests follow core conventions using
references/core-rules.md. - Validate structure, assertions, dependency injection, and best practices using
references/writing-better-tests.md. - Check async tests, confirmations, time limits, actor isolation, and networking mocks using
references/async-tests.md. - Ensure new features like raw identifiers, exit tests, and attachments are used correctly using
references/new-features.md. - If migrating from XCTest, follow
references/migrating-from-xctest.md.
If doing partial work, load only the relevant reference files.
References
| Topic | Reference |
|---|---|
Structs over classes, @Suite, parallel execution, withKnownIssue, tags |
references/core-rules.md |
Test hygiene, structure, DI, #expect vs #require, Issue.record(), verification methods |
references/writing-better-tests.md |
Serialized tests, confirmation(), time limits, actor isolation, mocking networking |
references/async-tests.md |
| Raw identifiers, exit tests, attachments, test scoping traits, range-based confirmations | references/new-features.md |
| XCTest-to-Swift Testing conversion, assertion mappings, floating-point tolerance | references/migrating-from-xctest.md |
More from vabole/apple-skills
ios-liquid-glass
API reference: Liquid Glass (iOS 26+). Query for glass effects, navigation patterns, GlassEffect modifiers, design principles.
151xcuitest
API reference: XCUITest. Query for element queries, waiting patterns, Swift 6 @MainActor, assertions, screenshots, launch arguments.
141swift-testing
API reference: Swift Testing framework. @Test, @Suite, #expect, #require, traits, parameterized tests, migrating from XCTest.
136swift-concurrency
API reference: Swift Concurrency. async/await, Task, TaskGroup, actors, AsyncSequence, AsyncStream, continuations.
136combine
API reference: Combine. Query for publishers, subscribers, operators, async data streams.
135swiftui
API reference: SwiftUI. Query for views, layouts, navigation, @State/@Binding/@Observable, view modifiers, NavigationStack, iOS 26+ features.
135