CodeBlanks Logo Icon CodeBlanks

Test desenleri

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

Yaygın test desenlerini öğrenirsin.

Test desenleri

Test desenleri (test patterns), tekrarlanan test ihtiyaçlarını çözen şablonlardır. En bilineni setup/teardown: test öncesi hazırlık ve sonrası temizlik. Bu desen, testlerin birbirinden bağımsız çalışmasını sağlar.

setup(void) test öncesi çağrılır; kaynakları hazırlar. teardown(void) test sonrası çağrılır; kaynakları serbest bırakır. Bir test işlevi bunların arasında çalışır. Bu, gerçek çerçevelerin (Unity, CMocka) fixture mekanizmasının temelidir.

Setup/teardown iskeleti

Bir setup işlevi kaynakları hazırlar ve başarı bayrağı döndürür; teardown temizler. Main içinde sıra şöyledir: setup(); test(); teardown();.

Örnek: int setup(void) { printf("kuruldu\n"); return 1; } ve void teardown(void) { printf("yıkıldı\n"); }. Main: setup(); printf("test: tamam\n"); teardown();. Çıktı: kuruldu, test: tamam, yıkıldı. Bu üç satır, gerçek bir fixture'ın minimum iskeletidir.

Uygulama Setup/teardown deseni

int setup(void) yaz: printf("kuruldu\n"); return 1;. void teardown(void) yaz: printf("yıkıldı\n");. main'de sırayla setup();, printf("test: tamam\n");, teardown(); çağır.

Başlangıç kodu

main.c
#include <stdio.h>

// int setup(void) yaz: "kuruldu" yazdır, 1 döndür
// void teardown(void) yaz: "yıkıldı" yazdır
// main: setup, test iletisi, teardown sırasıyla çağır

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>

int setup(void) {
    printf("kuruldu\n");
    return 1;
}

void teardown(void) {
    printf("yıkıldı\n");
}

int main(void) {
    setup();
    printf("test: tamam\n");
    teardown();
    return 0;
}

Beklenen çıktı

kuruldu
test: tamam
yıkıldı

Soru ve cevaplar

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

1 Desen adımlarını eşle

Kavram Anlamı
setup Öncesi hazırlık
teardown Sonrası temizlik
test Çalışan kısım
fixture Yapı iskeleti

2 setup işlevi ne zaman çağrılır?

  • Test çalıştırma için
  • Test sonrası temizlik için
  • Test öncesi hazırlık için Doğru cevap
  • Test raporu için

Açıklama: setup testten önce kaynakları hazırlar.

3 setup dönüş değeri

Soru
int setup(void) { printf("kuruldu
"); return ____; }
Cevap
int setup(void) { printf("kuruldu
"); return 1; }

Açıklama: setup başarı bayrağı olarak 1 döndürür.

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