> swift-testing

Standards for XCTest, Async Tests, and Test Organization. Use when writing XCTest cases, async tests, or organizing test suites in Swift. (triggers: **/*Tests.swift, XCTestCase, XCTestExpectation, XCTAssert)

fetch
$curl "https://skillshub.wtf/HoangNguyen0403/agent-skills-standard/swift-testing?format=md"
SKILL.mdswift-testing

Swift Testing Standards

Priority: P0

Implementation Guidelines

XCTest Framework

  • Standard Naming: Prefix test methods with test (e.g., testUserLoginSuccessful).
  • Setup/Teardown: Use setUpWithError() and tearDownWithError() for environment management.
  • Assertions: Use specific assertions: XCTAssertEqual, XCTAssertNil, XCTAssertTrue, etc.

Async Testing

  • Async/Await: Mark test methods as async and use await directly inside them.
  • Expectations: Use XCTestExpectation for callback-based or delegate-based async logic.
  • Timeout: Always set reasonable timeouts for expectations to avoid hanging CI.

Test Organization

  • Unit Tests: Focus on logic isolation using mocks/stubs for dependencies.
  • UI Tests: Test user flows using XCUIApplication and accessibility identifiers.
  • Coverage: Aim for high coverage on critical business logic and state transitions.

Anti-Patterns

  • Thread Sleeps: **No Thread.sleep**: Use expectations or await.
  • Force Unwrapping in Tests: **No user!**: Use XCTUnwrap(user) for better failure messages.
  • Missing Assertions: **Tests must assert**: A test that only runs code is not a test.

References

┌ stats

installs/wk0
░░░░░░░░░░
github stars341
██████████
first seenMar 17, 2026
└────────────

┌ repo

HoangNguyen0403/agent-skills-standard
by HoangNguyen0403
└────────────

┌ tags

└────────────