CodeBlanks Logo Icon CodeBlanks

Özet - Test temelleri

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

assert ve test çerçevesini birleştirerek bir hesap makinesi testi yazarsın.

Özet - Test temelleri

Bu grupta assert, basit bir test çerçevesi, test doblelleri, coverage ve setup/teardown desenini öğrendin. Şimdi tümünü birleştirerek bir hesap makinesi testi yazacaksın.

Program bir calc_add işlevi tanımlar; test_calculator işlevi assert ile onu sınar. Main testi çağırır ve başarı iletisi basar. Tüm çıktı deterministiktir: hesap doğru ise program "hesap: tamam" yazdırır.

Uygulama Hesap makinesi testi

int calc_add(int a, int b) yaz: return a + b;. void test_calculator(void) yaz: assert(calc_add(2, 3) == 5); ve assert(calc_add(0, 0) == 0);. main'de test_calculator(); çağır ve printf("hesap: tamam\n"); yazdır.

Başlangıç kodu

main.c
#include <stdio.h>
#include <assert.h>

// int calc_add(int a, int b) yaz: a+b döndür
// void test_calculator(void) yaz: assert ile sına
// main: test_calculator çağır ve "hesap: tamam" yazdır

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>
#include <assert.h>

int calc_add(int a, int b) {
    return a + b;
}

void test_calculator(void) {
    assert(calc_add(2, 3) == 5);
    assert(calc_add(0, 0) == 0);
}

int main(void) {
    test_calculator();
    printf("hesap: tamam\n");
    return 0;
}

Beklenen çıktı

hesap: tamam

Sonraki adımlar

Test temellerini öğrendin: assert, basit çerçeve, stub, coverage ve setup/teardown. Bunlar gerçek test çerçevelerinin çekirdeğidir.

İleri adımlar: Unity veya CMocka ile tam çerçeve kullanımı, mock ile etkileşim sınama, lcov ile HTML kapsam raporu ve parametreli testlerle aynı işlevi birçok girdiyle sınamak. Öğrendiğin desenler bu araçların temelini oluşturur.

Soru ve cevaplar

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

1 assert hangi koşulda başarısız olur?

  • Koşul doğruysa
  • Her zaman
  • Asla
  • Koşul yanlışsa Doğru cevap

Açıklama: assert koşul yanlışsa programı durdurur.

2 Test araçlarını eşle

Kavram Anlamı
assert Koşul denetler
test_run Çerçeve çekirdeği
stub_time Deterministik değer
coverage_counter Dal sayacı

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