0Pricing
Swift Academy · Pelajaran

Penyiapan, Pembongkaran, dan Metode Pengujian XCTestCase

Menyusun class pengujian dengan setUp/tearDown dan menamai metode pengujian.

Penyiapan, Pembongkaran, dan Metode Pengujian XCTestCase adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.

Dasar XCTestCase

XCTestCase adalah kelas dasar untuk semua pengujian unit Swift. Setiap metode yang diawali dengan "test" merupakan kasus pengujian.

import XCTest

final class MathTests: XCTestCase {
  func testAddition() {
    XCTAssertEqual(2 + 2, 4)
  }
}

setUp dan tearDown

setUp() berjalan sebelum setiap pengujian. tearDown() berjalan setelah setiap pengujian. Gunakan keduanya untuk menginisialisasi keadaan bersama dan melakukan pembersihan.

final class UserServiceTests: XCTestCase {
  var sut: UserService!
  override func setUp() {
    super.setUp()
    sut = UserService()
  }
  override func tearDown() {
    sut = nil
    super.tearDown()
  }
}

setUpWithError dan tearDownWithError

Varian setUp/tearDown yang dapat melemparkan kesalahan: jika penyiapan menghasilkan kesalahan, pengujian otomatis ditandai gagal.

override func setUpWithError() throws {
  sut = try UserService(config: loadTestConfig())
}
override func tearDownWithError() throws {
  try sut.cleanup()
}

Penyiapan Tingkat Kelas

class setUp() dan class tearDown() berjalan satu kali sebelum/sesudah semua pengujian dalam kelas—berguna untuk sumber daya bersama yang mahal.

final class DBTests: XCTestCase {
  static var db: TestDatabase!
  override class func setUp() {
    super.setUp()
    db = TestDatabase.inMemory()
  }
  override class func tearDown() {
    db.close()
    super.tearDown()
  }
}

Menamai Metode Pengujian

Beri nama pengujian dengan pola test_methodName_condition_expectedResult agar mudah dibaca dan menghasilkan pesan kegagalan yang jelas.

func test_login_withValidCredentials_returnsUser() throws { ... }
func test_login_withInvalidPassword_throwsUnauthorized() throws { ... }

addTeardownBlock

Daftarkan blok pembersihan per pengujian secara langsung tanpa menimpa tearDown.

func testCreateFile() throws {
  let url = FileManager.default.temporaryDirectory.appendingPathComponent("test.txt")
  addTeardownBlock { try? FileManager.default.removeItem(at: url) }
  // ... test
}

Menonaktifkan Pengujian

Awali metode pengujian dengan _ atau jadikan sebagai komentar untuk melewatinya. XCTest juga mendukung pelewatan dengan XCTSkipIf.

func testExperimentalFeature() throws {
  try XCTSkipIf(ProcessInfo.processInfo.environment["CI"] != nil, "Skip on CI")
  // ... test
}

Metode Pengujian Tidak Dapat Melemparkan Kesalahan (sebelum Xcode 16)

Pada Xcode versi sebelumnya, metode pengujian yang dideklarasikan sebagai throws meneruskan kesalahan sebagai kegagalan pengujian melalui XCTAssertNoThrow.

func testDecode() throws {
  let user = try JSONDecoder().decode(User.self, from: validJSON)
  XCTAssertEqual(user.name, "Alice")
}

Menggagalkan Pengujian Secara Eksplisit

Panggil XCTFail("reason") untuk memaksa pengujian gagal dengan pesan yang menjelaskan alasannya.

func testCallback() {
  var called = false
  service.doWork { called = true }
  if !called { XCTFail("Callback was never invoked") }
}

Rencana Pengujian

Rencana Pengujian Xcode memungkinkan Anda menjalankan pengujian yang sama dengan konfigurasi berbeda (bahasa, variabel lingkungan, sanitizer).

// File → New → Test Plan
// Add test targets and configure per-configuration env vars
// Useful for running localized UI tests or with Address Sanitizer

Pengujian Paralel

Aktifkan pengujian paralel di pengaturan skema Xcode untuk menjalankan kelas pengujian secara bersamaan dan mengurangi total waktu pengujian.

// Product → Scheme → Test → Options → Execute in parallel
// Each XCTestCase class runs in a separate process
// Ensure tests are independent and don't share global state

Pemeriksaan Singkat

Metode XCTestCase mana yang berjalan satu kali sebelum semua pengujian dalam kelas (bukan sebelum setiap pengujian)?

Rangkuman Pelajaran

Timpa setUp/tearDown (atau variannya yang dapat melemparkan kesalahan) untuk penyiapan/pembersihan per pengujian. Gunakan class setUp/tearDown untuk sumber daya yang disiapkan satu kali per kelas. Beri nama pengujian secara deskriptif. Gunakan addTeardownBlock untuk pembersihan langsung dan XCTSkipIf untuk pelewatan bersyarat.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Penyiapan, Pembongkaran, dan Metode Pengujian XCTestCase” gratis?

Ya — teks lengkap “Penyiapan, Pembongkaran, dan Metode Pengujian XCTestCase” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Penyiapan, Pembongkaran, dan Metode Pengujian XCTestCase”?

Menyusun class pengujian dengan setUp/tearDown dan menamai metode pengujian. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Swift Academy?

Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Penyiapan, Pembongkaran, dan Metode Pengujian XCTestCase” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?

Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Penyiapan, Pembongkaran, dan Metode Pengujian XCTestCase
  2. Keluarga XCTAssert dan Pernyataan yang Melempar Error
  3. Mocking Berbasis Protokol dan Injeksi Dependensi
  4. Pengujian Async dan Pengukuran Kinerja
← Kembali ke Swift Academy