Section 11/121 menit

11. Migrasi dari XCTest

11. Migrasi dari XCTest

Mapping XCTest → Swift Testing

XCTest Swift Testing Catatan
XCTestCase class @Suite struct Tidak perlu class
func testFoo() @Test func foo() Tidak perlu prefix "test"
setUp() init() Lebih natural
tearDown() deinit Lebih natural
XCTAssertEqual(a, b) #expect(a == b) Ekspresi arbitrary
XCTAssertNil(x) #expect(x == nil) Sama
XCTAssertNotNil(x) try #require(x) Unwrap atau stop
XCTAssertThrowsError #expect(throws:) Lebih expressive
XCTAssertNoThrow #expect(throws: Never.self) Eksplisit
XCTFail("message") Issue.record("message") Tidak stop test

Strategi Migrasi Bertahap

swift
// File lama: tetap jalan dengan XCTest
class OldUserTests: XCTestCase {
    func testLegacy() { XCTAssertTrue(true) }
}

// File baru: Swift Testing
@Suite("User Tests")
struct NewUserTests {
    @Test func newBehavior() { #expect(true) }
}

// Keduanya bisa ada bersamaan — migrasi bertahap