← ClaudeAtlas

swift-testing-baselinelisted

Default testing stack for new Apple-platform Swift projects — swift-testing (no XCTest), pointfreeco/swift-snapshot-testing, protocol-injected fakes for CloudKit / Game Center / network, snapshot images committed to git, CI Xcode version locked to local. Invoke when starting a new project, writing the first test target, choosing a snapshot framework, deciding CloudKit / GameKit test strategy, or when asked "which test framework".
wei18/apple-dev-skills · ★ 0 · Testing & QA · score 70
Install: claude install-skill wei18/apple-dev-skills
# Swift Testing Baseline ## When to invoke - Starting a new project and choosing a test framework. - Writing the first test target / first `@Test` case. - Introducing CloudKit / GameKit / any network service and deciding whether to run integration tests on CI. - Setting up SwiftUI snapshot testing. - User asks "XCTest or swift-testing", "how do I do snapshots", "should CI connect to iCloud". ## Default decisions ### Framework - **`swift-testing`** (Apple's official framework) for unit / integration tests; **do not use XCTest at all**. - With no legacy code, the switch is zero-cost; swift-testing pairs well with Swift 6 / async. - Name files by the type under test (`<Type>Tests.swift`) and group related cases with `@Suite`. ### Snapshot testing - **`pointfreeco/swift-snapshot-testing`**, using its swift-testing-compatible `assertSnapshot`. - **Snapshot images go into git** (default `__Snapshots__/` next to the test file) so visual diffs show up in PR review. - Start by covering **the main screens** and expand from there. Each snapshot should cover multiple locales, iPhone / Mac, light / dark, and typical states. #### Snapshot gate strategy — strict content / tolerant board (a settled design decision, not a global knob) Tolerance is **per-suite by view type**, not a global knob: - **Content suites** (Completion / DailyHub / Home / Settings — text, cards, badges) use the **default strict `.image`** (precision 1.0). Bit-exact is the point: adding any visible element