Tesztelés a C kurzuson

Tanuld meg, hogyan teszteld a C feladataidat az Exercism-ön


Minden feladat biztosítja az egységteszteket és egy Make-fordítási receptet. A megvalósítást neked kell elkészítened.

Minden tesztfájl a te megvalósításodhoz linkelődik, hogy létrejöjjön egy konzolról futtatható program, amely lefuttatja a teszteket. A tesztprogram futtatása minden sikertelen tesztnél üzenetet ír ki, és nullától eltérő kilépési állapotot jelez, ha a tesztek elbuknak.

Így dolgozhatsz végig egy feladatot:

  • Készítsd el a kezdeti buildet a Make segítségével
  • Minden egységtesztnél:
    • Töröld a TEST_IGNORE() sort.
    • Hárítsd el a fordítási hibákat, hogy a teszt el tudjon bukni.
    • Valósítsd meg épp csak annyit, hogy a teszt sikeres legyen.
    • Alakítsd át a megvalósításodat az olvashatóság javítása, a duplikáció csökkentése stb. érdekében.

A tesztek fordítása és futtatása

Minden feladat hoz magával egy makefile fájlt és egy .c fájlt az egységtesztekkel. A Make fájlt valószínűleg nem kell szerkesztened. A mellékelt Make fájl azt feltételezi, hogy a megvalósításod egy fejlécfájlból (.h) és egy forrásfájlból (.c) áll, amelyek a feladatról kapták a nevüket.

Például a bob feladat a bob.h és bob.c fájlban várja a megvalósítást. A kötőjelet tartalmazó nevű feladatoknál a forrásfájlokról feltételezzük, hogy alulvonást használnak, így a word-count a word_count.h és word_count.c fájlt várja. Dönthetsz úgy, hogy a megvalósításod elég egyszerű ahhoz, hogy teljes egészében a fejlécben legyen, ebben az esetben elhagyhatod a .c fájlt.

A Make futtatása előtt hozd létre a kezdeti megvalósításfájlokat. Ha a bob feladat Make-jének futtatásakor nem léteznek a bob.h és bob.c fájlok, a Make hibát jelez, hogy nem találja a fájlokat. Ezek a fájlok lehetnek üresek, de létezniük kell.

A kód lefordítása

A kód lefordításának legegyszerűbb módja, ha a parancssorban (CLI) futtatod a make parancsot. Linuxon a parancssor bashben vagy hasonlóban érhető el, MacOS-en használd a Terminált. Windows 10-en a Windows Subsystem for Linux (WSL) Bash áll rendelkezésre.

Ehhez, feltéve hogy az aktuális könyvtár a feladat mappája:

$ make

Ez lefordítja a kódodat és lefuttatja a teszteket.

A makefile tartalmaz egy olyan buildet is, amely néhány gyakori hibát ellenőriz: memóriaszivárgást és a tömbökön túli indexelést. Az ellenőrzések futtatásához írd be a következőt a parancssorba:

$ make memcheck

Takarítás

Egy build után a make segítségével törölheted az összes build-kimenetet, a futtatható fájlt is beleértve:

$ make clean

Alternatív build MacOS-en

MacOS-en az Xcode-ot is használhatod. A kód lefordításához válaszd a Build elemet az eszköztárból.