CodeBlanks Logo Icon CodeBlanks

group

group ile test organizasyonunu öğrenirsin.

group ile düzen

group('ad', () { ... }) ilgili testleri bir araya toplar. Örneğin bir MathUtils sınıfının testlerini group('MathUtils', () { ... }) içine koyarsın.

Gruplar test çıktısını düzenler; her test grubun adıyla birlikte görünür. Böylece büyük test dosyalarında neyin sınandığı kolay okunur.

Gruplar iç içe de olabilir. group('Math', () { group('faktoriyel', () { ... }); }) bir alt grup oluşturur.

İç içe gruplar

Gruplar iç içe kullanılabilir. Örneğin group('Math', () { group('faktoriyel', () { test('sıfır', () {}); }); }) bir hiyerarşi kurar. Çıktıda Math faktoriyel sıfır olarak görünür.

İç gruplar, dış grubun bağlamını miras alır. setUp dış grupta tanımlıysa iç gruptaki testlerde de çalışır.

Ancak çok derin yuvalama okunabilirliği azaltır. İki seviye genelde yeterlidir.

Uygulama MathUtils ve factorial

Bir MathUtils sınıfı tanımla: static int factorial(int n) metodu olsun. n <= 1 ise 1, değilse n * factorial(n - 1) döndürsün. main içinde MathUtils.factorial(5) sonucunu print ile yazdır.

Başlangıç kodu

main.dart
// MathUtils sınıfını tanımla, factorial metodu ekle

void main() {
  // factorial(5) sonucunu yazdır
}

Örnek çözüm

main.dart
class MathUtils {
  static int factorial(int n) {
    if (n <= 1) return 1;
    return n * factorial(n - 1);
  }
}

void main() {
  print(MathUtils.factorial(5));
}

Beklenen çıktı

120

Soru ve cevaplar

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

1 group bloğu

Soru
group('MathUtils', ____ { test('toplama', () {}); });
Cevap
group('MathUtils', () { test('toplama', () {}); });

Açıklama: group ikinci parametresi bir işlevdir: ().

2 group ne işe yarar?

  • Bir hata fırlatır
  • Bir döngü kurar
  • İlgili testleri toplar Doğru cevap
  • Bir dosya açar

Açıklama: group ilgili testleri bir araya toplar.

3 group parçaları

Kavram Anlamı
group('Math', () {}) Dış grup
group('faktoriyel', () {}) İç grup
test('sıfır', () {}) Test

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