Özet - Mockito
- Java kursu
- İleri seviye
- Ders 54/82
- 5 dk
Mock, when ve verify'yi birleştirerek bir servis testi yazarsın.
Özet - Mockito
Bu grupta Mockito'nun temel araçlarını gördün: mock() ile sahte nesne, @Mock ve @InjectMocks ile alan tabanlı kurulum, when().thenReturn() ile davranış, verify() ile etkileşim denetimi ve ArgumentMatchers ile esnek eşleştirme.
Şimdi bunları bir mini göreve birleştireceksin: bir OrderService için stub ve denetim mantığını elle kuracaksın. Bu özet, mock'ların gerçekte nasıl çalıştığını gösterir.
Uygulama OrderService için stub kur
Bir OrderService sınıfı tanımla; double priceFor(String sku) yöntemi bir Map<String, Double> tabloya bakar ve fiyat döndürür; bilinmeyen sku için 0.0 döndürür. Bir OrderDemo sınıfında main yaz; tabloya put("A1", 9.99) ve put("B2", 4.50) ekleyin; priceFor("A1") sonucunu yazdır.
Başlangıç kodu
import java.util.*;
// OrderService sınıfını tanımla (priceFor yöntemi Map kullanır)
// OrderDemo sınıfında main yaz; tabloya SKU ekle ve priceFor sonucunu yazdırÖrnek çözüm
import java.util.*;
class OrderService {
Map<String, Double> table = new HashMap<>();
double priceFor(String sku) {
return table.getOrDefault(sku, 0.0);
}
}
class OrderDemo {
public static void main(String[] args) {
OrderService s = new OrderService();
s.table.put("A1", 9.99);
s.table.put("B2", 4.50);
System.out.println(s.priceFor("A1"));
}
}Beklenen çıktı
9.99
Uygulama Etkileşim sayacını ekle
Yeni bir CallTracker sınıfı tanımla; int count tutmak için bir alan ve void record(String sku) yöntemi her çağrıda count'u artırsın. Bir TrackerDemo sınıfında main yaz; record'u iki kez çağır ve count'u yazdır.
Başlangıç kodu
// CallTracker sınıfını tanımla (count alanı ve record yöntemi)
// TrackerDemo sınıfında main yaz; record'u iki kez çağır ve count'u yazdırÖrnek çözüm
class CallTracker {
int count = 0;
void record(String sku) {
count++;
}
}
class TrackerDemo {
public static void main(String[] args) {
CallTracker t = new CallTracker();
t.record("A1");
t.record("B2");
System.out.println(t.count);
}
}Beklenen çıktı
2
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Mockito'da bir mock yöntemine dönüş değeri tanımlamak için ne kullanılır?
- verify
- any()
- @Mock
- when(...).thenReturn(...) Doğru cevap
Açıklama: when(...).thenReturn(...) ile dönüş değeri tanımlanır.
2 Mockito özetini eşleştir
| Kavram | Anlamı |
|---|---|
mock() |
Sahte nesne üretir |
@Mock |
Alanı mock işaretler |
when |
Davranış tanımlar |
verify |
Çağrı denetler |