CodeBlanks Logo Icon CodeBlanks

verify

verify ile çağrı doğrulamayı öğrenirsin.

verify

verify(mock) ile bir mock üzerinde yapılan çağrıları denetlersin. Belirli bir yöntemin belirli bir girdiyle çağrılıp çağrılmadığını, kaç kez çağrıldığını sınayabilirsin.

service.register("Ayşe");

verify(repo).save(any(User.class));
verify(mail, times(1)).send("Ayşe");

Bu, test edilen kodun yan etkilerini doğrulamanın yoludur. Dönüş değeri değil, etkileşim denetlenir. times, never, atLeast gibi niteleyiciler sıklığı belirtir.

Çağrı sayısı niteleyicileri

verify ile çağrı sayısını da denetleriz. times(n) tam n kez, never() hiç, atLeast(n) en az n kez çağrılmış olması gerektiğini belirtir.

verify(mail, times(2)).send("Ayşe");
verify(repo, never()).delete(anyInt());
verify(logger, atLeast(1)).info(anyString());

Bu, yan etkilerin tam olarak beklenen sıklıkta gerçekleştiğini doğrular. Çift e-posta gönderme veya yanlışlıkla silme gibi hatalar yakalanır. Test daha kesin hale gelir.

Uygulama Logger ile etkileşimleri say

Bir Logger arayüzü tanımla (void info(String msg)). Counter sınıfı, info çağrı sayısını tutar. Counter sınıfında log(String msg) yöntemi her çağrıda sayacı bir artırır. Bir VerifyDemo sınıfında main yaz; log'u üç kez çağır ve sonucu yazdır.

Başlangıç kodu

Main.java
// Logger arayüzünü tanımla (info yöntemi)

// Counter sınıfını tanımla (info çağrı sayısını tutar)

// VerifyDemo sınıfında main yaz; log'u üç kez çağır ve sayacı yazdır

Örnek çözüm

Main.java
interface Logger {
    void info(String msg);
}

class Counter implements Logger {
    int count = 0;
    public void info(String msg) {
        count++;
    }
}

class VerifyDemo {
    public static void main(String[] args) {
        Counter c = new Counter();
        c.info("a");
        c.info("b");
        c.info("c");
        System.out.println(c.count);
    }
}

Beklenen çıktı

3

Soru ve cevaplar

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

1 verify neyi denetler?

  • Mock'un dönüş değerini
  • Testin süresini
  • Mock'un türünü
  • Mock üzerinde yapılan çağrıları Doğru cevap

Açıklama: verify, mock üzerinde yapılan çağrıları denetler.

2 Niteleyicileri eşleştir

Kavram Anlamı
times(2) Tam iki kez
never() Hiç çağrılmaz
atLeast(1) En az bir kez
atMost(3) En çok üç kez

3 verify çağrısını tamamla

Soru
service.register("Ayşe");

____(mail).send("Ayşe");
Cevap
service.register("Ayşe");

verify(mail).send("Ayşe");

Açıklama: verify ile çağrı denetlenir.

İleri seviye bölümündeki tüm dersler