0Pricing
Swift Academy · Ders

XCTestCase Kurulumu, Temizleme ve Test Yöntemleri

setUp/tearDown ile test sınıflarını yapılandırın ve test yöntemlerini adlandırın.

XCTestCase Kurulumu, Temizleme ve Test Yöntemleri, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.

XCTestCase Temelleri

XCTestCase, tüm Swift birim sınamalarının temel sınıfıdır. "test" ile başlayan her yöntem bir sınama durumudur.

import XCTest

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

setUp ve tearDown

setUp() her sınamadan önce çalışır. tearDown() her sınamadan sonra çalışır. Bunları ortak durumun başlatılması ve temizlenmesi için kullanın.

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

setUpWithError ve tearDownWithError

setUp/tearDown yöntemlerinin hata fırlatan sürümleridir: kurulum hata fırlatırsa sınama otomatik olarak başarısız olarak işaretlenir.

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

Sınıf Düzeyinde Kurulum

class setUp() ve class tearDown(), sınıftaki tüm sınamalardan önce ve sonra birer kez çalışır; pahalı ortak kaynaklar için kullanışlıdır.

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()
  }
}

Sınama Metotlarını Adlandırma

Okunabilirlik ve açık başarısızlık iletileri için sınamaları test_methodName_condition_expectedResult biçiminde adlandırın.

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

addTeardownBlock

tearDown yöntemini geçersiz kılmadan, sınama başına temizleme bloklarını satır içinde kaydedin.

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

Sınamaları Devre Dışı Bırakma

Atlamak için bir sınama yönteminin başına _ ekleyin veya yöntemi açıklama satırına dönüştürün. XCTest ayrıca XCTSkipIf ile atlamayı destekler.

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

Sınama Metotları Hata Fırlatamaz (Xcode 16 Öncesi)

Önceki Xcode sürümlerinde throws olarak bildirilen sınama metotları, hataları XCTAssertNoThrow aracılığıyla sınama başarısızlıkları olarak yayar.

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

Bir Sınamayı Açıkça Başarısız Kılma

Açıklayıcı bir iletiyle bir sınamayı zorla başarısız kılmak için XCTFail("reason") çağırın.

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

Sınama Planları

Xcode Sınama Planları, aynı sınamaları farklı yapılandırmalarla (dil, ortam değişkenleri, sanitizer'lar) çalıştırmanıza olanak tanır.

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

Paralel Sınama

Sınama sınıflarını eşzamanlı çalıştırmak ve toplam sınama süresini azaltmak için Xcode şeması ayarlarında paralel sınamayı etkinleştirin.

// 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

Hızlı Kontrol

Sınıftaki tüm sınamalardan önce bir kez çalışan XCTestCase yöntemi hangisidir?

Ders Özeti

Sınama başına kurulum ve temizleme için setUp/tearDown yöntemlerini (veya hata fırlatan sürümlerini) geçersiz kılın. Sınıf başına bir kez gereken kaynaklar için class setUp/tearDown kullanın. Sınamaları açıklayıcı biçimde adlandırın. Satır içi temizleme için addTeardownBlock, koşullu atlama içinse XCTSkipIf kullanın.

Sıkça Sorulan Sorular

“XCTestCase Kurulumu, Temizleme ve Test Yöntemleri” dersi ücretsiz mi?

Evet — “XCTestCase Kurulumu, Temizleme ve Test Yöntemleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.

“XCTestCase Kurulumu, Temizleme ve Test Yöntemleri” dersinde ne öğreneceğim?

setUp/tearDown ile test sınıflarını yapılandırın ve test yöntemlerini adlandırın. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Swift Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“XCTestCase Kurulumu, Temizleme ve Test Yöntemleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. XCTestCase Kurulumu, Temizleme ve Test Yöntemleri
  2. XCTAssert Ailesi ve Hata Fırlatan Doğrulamalar
  3. Protokol Tabanlı Sahte Nesne Kullanımı ve Bağımlılık Ekleme
  4. Eşzamansız Testler ve Başarım Ölçümü
← Swift Academy Sayfasına Dön