CodeBlanks Logo Icon CodeBlanks

Test dobleleri

  • C kursu
  • İleri seviye
  • Ders 69/83
  • 5 dk

Test dobleleri ve stub yazmayı öğrenirsin.

Test dobleleri

Test dobleleri (test doubles), gerçek bağımlılıkların yerine geçen köpeklerdir: stub, mock ve fake. En yaygın olanı stub'tır; sabit bir değer döndürür.

Örnek: time() işlevi her çağrıda farklı değer döndüğü için test edilmesi zordur. long stub_time(void) { return 1000; } yazarak deterministik bir değer alırsın. Böylece test her makinede aynı sonucu verir. Stub, dış dünyayı (saat, rastgele sayı, ağ) testten ayırır.

Stub türleri

Stub sabit değer döner; mock aynı zamanda hangi çağrıların yapıldığını kaydeder; fake basitleştirilmiş ama çalışan bir uygulama sunar (örneğin bellek içi veritabanı).

Bu derste yalnızca stub kullanıyoruz: long stub_time(void). Main içinde long t = stub_time(); ve printf("zaman: %ld\n", t); yazarsın. Çıktı her zaman "zaman: 1000" olur; bu deterministik testin tanımıdır. Gerçek time ile test, saat başına farklı sonuç verirdi.

Uygulama stub_time yaz

long stub_time(void) işlevini yaz: return 1000;. main'de long t = stub_time(); ve printf("zaman: %ld\n", t); yazdır.

Başlangıç kodu

main.c
#include <stdio.h>

// long stub_time(void) yaz: 1000 döndürsün
// main: stub_time çağır ve zamanı yazdır

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>

long stub_time(void) {
    return 1000;
}

int main(void) {
    long t = stub_time();
    printf("zaman: %ld\n", t);
    return 0;
}

Beklenen çıktı

zaman: 1000

Soru ve cevaplar

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

1 stub_time gövdesi

Soru
long stub_time(void) { return ____; }
Cevap
long stub_time(void) { return 1000; }

Açıklama: Stub sabit 1000 döndürür; test deterministiktir.

2 Doble türlerini eşle

Kavram Anlamı
stub Sabit değer
mock Çağrı kaydı
fake Basit uygulama
real Gerçek bağımlılık

3 stub_time ne zaman kullanışlıdır?

  • Deterministik test için Doğru cevap
  • Bellek ayırmak için
  • Dosya kapatmak için
  • Sinyal göndermek için

Açıklama: Stub, deterministik test için sabit değer verir.

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