> swift-testing

Write XCTest cases, async tests, and organized test suites in Swift. 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

Write XCTest Cases

  • Standard Naming: Test functions must be prefixed by 'test' (e.g., func testUserLoginSuccessful()).
  • Setup/Teardown: Use setUpWithError() and tearDownWithError() for environment management.
  • Assertions: Use specific assertions: XCTAssertEqual, XCTAssertNil, XCTAssertTrue, etc.

See implementation examples for XCTest setup/teardown, async tests, and UI test patterns.

Test Async Code

  • Async/Await: Mark test methods as async throws and use try await directly inside them.
  • Expectations: Use XCTestExpectation for callback-based async logic. Call expectation then fulfill() when done; then wait(for: [exp], timeout: 2.0) to block.
  • Timeout: Always set reasonable timeouts for expectations to avoid hanging CI.

Organize Test Suites

  • Unit Tests: Use protocols for dependencies and inject them via constructor (e.g., init(service: ServiceProtocol)). Focus on logic isolation using mocks/stubs.
  • UI Tests: Test user flows using XCUIApplication and accessibility identifiers.
  • Coverage: Aim for high coverage on critical business logic and state transitions.

Anti-Patterns

  • No Thread.sleep: Use expectations or await.
  • No force unwrap in tests: Use XCTUnwrap() for better failure messages.
  • No assertion-free tests: A test that only runs code is not a test.

References

> related_skills --same-repo

> common-store-changelog

Generate user-facing release notes for the Apple App Store and Google Play Store by collecting git history, triaging user-impacting changes, and drafting store-compliant changelogs. Enforces character limits (App Store ≤4000, Google Play ≤500), tone, and bullet format. Use when generating release notes, app store changelog, play store release, what's new, or version release notes for any mobile app. (triggers: generate changelog, app store notes, play store release, what's new, release notes, ve

> golang-tooling

Go developer toolchain — gopls LSP diagnostics, linting, formatting, and vet. Use when setting up Go tooling, running linters, or integrating gopls with Claude Code. (triggers: gopls, golangci-lint, golangci.yml, go vet, goimports, staticcheck, go tooling, go lint)

> common-ui-design

Design distinctive, production-grade frontend UI with bold aesthetic choices. Use when building web components, pages, interfaces, dashboards, or applications in any framework (React, Next.js, Angular, Vue, HTML/CSS). (triggers: build a page, create a component, design a dashboard, landing page, UI for, build a layout, make it look good, improve the design, build UI, create interface, design screen)

> common-owasp

OWASP Top 10 audit checklist for Web Applications (2021) and APIs (2023). Load during any security review, PR review, or codebase audit touching web, mobile backend, or API code. (triggers: security review, OWASP, broken access control, IDOR, BOLA, injection, broken auth, API review, authorization, access control)

┌ stats

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

┌ repo

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

┌ tags

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