Section 8/121 menit

8. Kapan Harus Digunakan

8. Kapan Harus Digunakan

Gunakan Swift Testing untuk:

1. Semua unit test baru

swift
// Default choice untuk test baru di Swift 6+
@Test("Business logic")
func calculateDiscount() {
    let discount = PricingEngine.discount(for: .premium, amount: 100)
    #expect(discount == 20)
}

2. Test dengan banyak kombinasi input

swift
// Parameterized test jauh lebih expressive dari XCTest
@Test("Discount tiers", arguments: [
    (tier: UserTier.basic, amount: 100.0, expectedDiscount: 5.0),
    (tier: .premium, amount: 100.0, expectedDiscount: 20.0),
    (tier: .vip, amount: 100.0, expectedDiscount: 35.0),
])
func discountByTier(tier: UserTier, amount: Double, expected: Double) {
    #expect(PricingEngine.discount(for: tier, amount: amount) == expected)
}

3. Test yang butuh grouping dan tagging yang baik

swift
@Suite("Payment", .tags(.critical))
struct PaymentTests { ... }

4. Test di Swift Package (cross-platform)

swift
// Swift Testing berjalan di macOS, iOS, Linux, Windows
// XCTest tidak berjalan di Linux/Windows