Mock
- Dart kursu
- Orta seviye
- Ders 86/116
- 5 dk
mockito ile mock öğrenirsin.
Mock ile sahte bağımlılık
Mock, gerçek bir bağımlılığın sahte bir sürümüdür. Dış servisleri (HTTP, veritabanı) testten uzak tutmak için kullanılır. Dart'ta mockito paketi yaygındır.
Bir mock sınıfı class MockHttp extends Mock implements HttpClient {} biçiminde yazılır. Sonra when(mock.get()).thenReturn('veri') ile davranışı belirlersin.
Böylece test, gerçek ağ çağrısı yapmadan öngörülebilir sonuçlar alır. Hızlı ve kararlı olur.
when ve verify
Mockito'da when(mock.fetch()).thenReturn('veri') ile bir metodun dönüş değerini belirlersin. Test sırasında mock.fetch() çağrılınca 'veri' döner; gerçek bir çağrı yapılmaz.
verify(mock.fetch()) ile metodun çağrılıp çağrılmadığını denetlersin. Bu, etkileşimleri sınamak için kullanışlıdır ve beklenen akışı doğrular.
Basit durumlarda elle yazılmış bir sahte sınıf da yeterlidir; mockito her zaman gerekli değildir.
Uygulama WeatherService sahtesi
Bir abstract class WeatherService tanımla: String temperature() metodu olsun. Bir FakeWeatherService implements WeatherService sınıfı yaz; temperature() metodu '22C' döndürsün. main içinde bir FakeWeatherService oluştur ve temperature() sonucunu print ile yazdır.
Başlangıç kodu
// WeatherService soyut sınıfını tanımla
// FakeWeatherService sahte sınıfını tanımla
void main() {
// sahte servisin temperature sonucunu yazdır
}Örnek çözüm
abstract class WeatherService {
String temperature();
}
class FakeWeatherService implements WeatherService {
@override
String temperature() => '22C';
}
void main() {
var s = FakeWeatherService();
print(s.temperature());
}Beklenen çıktı
22C
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Mock ne işe yarar?
- Sahte bir bağımlılık sağlar Doğru cevap
- Gerçek ağ çağrısı yapar
- Bir döngü kurar
- Bir dosya siler
Açıklama: mock sahte bir bağımlılık sağlar.
2 mockito içe aktarımı
import 'package:mockito/____.dart';
import 'package:mockito/mockito.dart';
Açıklama: mockito paketi bu yolla içe aktarılır.
3 Mock parçaları
| Kavram | Anlamı |
|---|---|
class FakeWeatherService |
Sahte sınıf |
when(...).thenReturn |
Davranış belirleme |
verify(...) |
Çağrı denetimi |
Mock |
mockito temel sınıfı |