Mock
- Node.js kursu
- Orta seviye
- Ders 86/116
- 5 dk
Mock fonksiyonları ve modül mock'lamayı öğrenirsin.
Mock fonksiyonları
Bir fonksiyonun çağrılıp çağrılmadığını, kaç kez çağrıldığını veya hangi argümanlarla çağrıldığını denetlemek için mock kullanırsın. node:test'in mock nesnesi test içinde sahte (fake) fonksiyonlar yaratır.
Örnek: const fn = mock.fn(); ile çağrılabilen bir sahte fonksiyon yaratırsın. fn(1, 2); fn(3); çağrılarından sonra fn.mock.calls.length 2'dir; fn.mock.calls[0] ise [1, 2]'dir. Bu, gerçek bir veritabanına gitmeden veya ağ istekleri yapmadan fonksiyon çağrılarını denetlemeyi sağlar. Mock'lar test sonunda otomatik geri alınır; yani asıl fonksiyonu etkilemez. Bu derste mock.fn() ile sahte fonksiyon yaratmayı öğreneceğiz.
Çağrıları denetleme
Bir mock fonksiyon çağrıldıktan sonra fn.mock.calls dizisi çağrı kayıtlarını tutar. Her kayıt, o çağrıya geçirilen argümanlar dizisidir. fn.mock.calls.length kaç kez çağrıldığını verir.
Örnek: fn("merhaba"); fn("dünya"); çağrılarından sonra fn.mock.calls.length === 2 ve fn.mock.calls[1][0] === "dünya"'dır. Bu, fonksiyona doğru argümanların geçirilip geçirilmediğini denetlemek için kullanışlıdır. Bir mock'a dönüş değeri de atayabilirsin: fn.mockReturnValue(42). Ancak node:test'in mock.fn()'i varsayılan olarak undefined döndürür. Dönüş değerini değiştirmek için mock.method ile nesne yöntemlerini mock'lamak gerekir; bu ileri bir konudur.
Uygulama Sahte fonksiyon yarat ve çağır
node:test'ten mock'u içe aktar. const fn = mock.fn(); ile sahte fonksiyon yarat. fn("merhaba") ve fn("dünya") ile iki kez çağır. console.log("Mock hazır: " + fn.mock.calls.length) ile yazdır.
Başlangıç kodu
// mock'u node:test'ten içe aktar
// buraya yaz
// sahte fonksiyon yarat
// buraya yaz
// iki kez çağır
// buraya yaz
// "Mock hazır: ..." yazdır
// buraya yazÖrnek çözüm
const { mock } = require("node:test");
const fn = mock.fn();
fn("merhaba");
fn("dünya");
console.log("Mock hazır: " + fn.mock.calls.length);Beklenen çıktı
Mock hazır: 2
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 mock.fn() çağrısını tamamla
const fn = ____();
const fn = mock.fn();
Açıklama: mock.fn() bir sahte fonksiyon yaratır.
2 fn.mock.calls.length neyi verir?
fn(1); fn(2); fn(3); fn.mock.calls.length- Çağrı argümanlarını
- Çağrı sayısını Doğru cevap
- Dönüş değerini
- Mock türünü
Açıklama: calls.length kaç kez çağrıldığını verir.
3 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
mock.fn() |
Sahte fonksiyon yaratır |
fn.mock.calls |
Çağrı kayıtları |
calls.length |
Çağrı sayısı |
calls[0] |
İlk çağrı argümanları |