Test çerçevesi
- C kursu
- İleri seviye
- Ders 68/83
- 5 dk
Kendi test çerçeveni yazmayı öğrenirsin.
Test çerçevesi
Bir test çerçevesi (test framework), testleri çalıştıran ve sonuçları toplayan küçük bir iskelettdir. En basit haliyle bir sayaç ve bir koşul denetimi içerir.
İşlev void test_run(int cond): koşul doğru ise passed sayacını artırır. Tüm testler sonunda printf("geçti: %d\n", passed); ile kaçının başarılı olduğunu yazdırırsın. Bu, gerçek çerçevelerin (Unity, CMocka) çekirdeğidir; işlev imzası ve sayaç yapısı burada yatar.
Sayacın artırılması
Bir global sayaç int passed = 0; tanımlarsın. test_run içinde koşul doğru ise passed++ yaparsın. Global olmaları küçük programlar için pratiktir; büyük projelerde bir yapı içine taşınır.
İşlev imzası: void test_run(int cond) { if (cond) passed++; }. Bu minimal çerçeveyle istediğin kadar koşul sınayabilirsin. Sonunda printf ile özet basarsın. Sayaç doğruluğu, çerçevenin güvenilirliğinin temelidir.
Uygulama Basit test çerçevesi
Global int passed = 0; tanımla. void test_run(int cond) işlevini yaz: if (cond) passed++;. main'de test_run(2 + 3 == 5); çağır ve printf("geçti: %d\n", passed); yazdır.
Başlangıç kodu
#include <stdio.h>
// Global passed sayacı tanımla (başlangıç 0)
// test_run işlevini yaz: koşul doğru ise sayacı artır
// main: tek bir aritmetik koşulu sına ve geçti sayısını yazdır
int main(void) {
return 0;
}Örnek çözüm
#include <stdio.h>
int passed = 0;
void test_run(int cond) {
if (cond) passed++;
}
int main(void) {
test_run(2 + 3 == 5);
printf("geçti: %d\n", passed);
return 0;
}Beklenen çıktı
geçti: 1
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Çerçeve parçalarını eşle
| Kavram | Anlamı |
|---|---|
test_run |
Koşulu sınar |
passed |
Başarı sayacı |
cond |
Koşul parametresi |
printf |
Sonuç yazdırır |
2 test_run işlevinin görevi nedir?
- Bellek ayırır
- Dosya açar
- Sinyal gönderir
- Test çalıştırır Doğru cevap
Açıklama: test_run koşulu sınar ve sayacı günceller.
3 test_run imzası
void test_run(____) { if (cond) passed++; }
void test_run(int cond) { if (cond) passed++; }
Açıklama: int cond parametresi koşulu taşır.