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