CodeBlanks Logo Icon CodeBlanks

setUp ve tearDown

setUp ve tearDown ile fixture öğrenirsin.

setUp ve tearDown

setUp(() { ... }) her testten önce, tearDown(() { ... }) her testten sonra çalışır. Bu, her teste temiz bir ortam (fixture) hazırlar.

Örneğin bir Counter örneği setUp'ta oluşturulursa her test sıfırdan başlar. tearDown geçici dosyaları ya da bağlantıları kapatır.

Bu metotlar group içinde de kullanılabilir; yalnızca o grubun testleri için çalışırlar.

Fixture kavramı

Bir fixture, testin çalıştığı ortamdır. setUp içinde bir nesne oluşturup testlerin paylaştığı değişkene koyarsın. Her test bu nesneyi sıfırdan alır.

Örneğin late Counter c; setUp(() { c = Counter(); }); her test için yeni bir Counter üretir. Böylece testler birbirini etkilemez.

tearDown ise test sonunda temizlik yapar; geçici dosyaları siler ya da bağlantıları kapatır.

Uygulama Counter sınıfı

Bir Counter sınıfı tanımla: int value = 0 alanı ve void increment() => value++ metodu olsun. main içinde bir Counter oluştur, increment()'i üç kez çağır ve value'yu print ile yazdır.

Başlangıç kodu

main.dart
// Counter sınıfını tanımla (value, increment)

void main() {
  // bir Counter oluştur, increment'i üç kez çağır, value yazdır
}

Örnek çözüm

main.dart
class Counter {
  int value = 0;
  void increment() => value++;
}

void main() {
  var c = Counter();
  c.increment();
  c.increment();
  c.increment();
  print(c.value);
}

Beklenen çıktı

3

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 setUp ne zaman çalışır?

  • Tüm testlerden sonra bir kez
  • Program başlarken bir kez
  • Yalnızca hata durumunda
  • Her testten önce Doğru cevap

Açıklama: setUp her testten önce çalışır.

2 setUp bloğu

Soru
____(() {
  counter = Counter();
});
Cevap
setUp(() {
  counter = Counter();
});

Açıklama: setUp ile her testten önce kod çalışır.

3 Fixture parçaları

Kavram Anlamı
setUp Testten önce
tearDown Testten sonra
Counter() Fixture nesnesi
value Sınanan alan

Orta seviye bölümündeki tüm dersler