verify
- Java kursu
- İleri seviye
- Ders 52/82
- 5 dk
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
// 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
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
service.register("Ayşe");
____(mail).send("Ayşe");
service.register("Ayşe");
verify(mail).send("Ayşe");
Açıklama: verify ile çağrı denetlenir.