swift-testing

Featured

Swift testing: XCTest, Swift Testing framework, async patterns.

Testing & QA 412 stars 42 forks Updated 2 days ago MIT

Install

View on GitHub

Quality Score: 96/100

Stars 20%
87
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Swift Testing Patterns ## XCTest Basics XCTest is Apple's foundational testing framework. Every test class inherits from `XCTestCase` and uses `setUp`/`tearDown` for lifecycle management. ```swift import XCTest @testable import MyApp final class UserServiceTests: XCTestCase { var sut: UserService! var mockStore: MockUserStore! override func setUp() { super.setUp() mockStore = MockUserStore() sut = UserService(store: mockStore) } override func tearDown() { sut = nil mockStore = nil super.tearDown() } func testFetchUser_withValidID_returnsUser() { mockStore.stubbedUser = User(id: "1", name: "Alice") let user = sut.fetchUser(id: "1") XCTAssertNotNil(user) XCTAssertEqual(user?.name, "Alice") } func testFetchUser_withInvalidID_returnsNil() { mockStore.stubbedUser = nil let user = sut.fetchUser(id: "unknown") XCTAssertNil(user) } } ``` ## Swift Testing Framework (Swift 5.9+) The Swift Testing framework replaces XCTest with a more expressive, macro-driven approach. Use `@Test` for individual tests, `#expect` for assertions, and `@Suite` for grouping. ```swift import Testing @testable import MyApp @Suite("User Service") struct UserServiceTests { let mockStore = MockUserStore() @Test("fetches user by valid ID") func fetchValidUser() { mockStore.stubbedUser = User(id: "1", name: "Alice") let servic...

Details

Author
notque
Repository
notque/vexjoy-agent
Created
4 months ago
Last Updated
2 days ago
Language
Python
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category