Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:c:egysegteszt

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

oktatas:programozas:c:egysegteszt [2017/10/02 20:29]
oktatas:programozas:c:egysegteszt [2019/08/21 18:56] (aktuális)
admin létrehozva
Sor 1: Sor 1:
 +[[oktatas:​programozás:​c|<​ C]]
 +
 +====== Egységteszt ======
 +
 +===== assert =====
 +
 +
 +<code c test.c>
 +#include <​stdio.h>​
 +#include <​assert.h>​
 +
 +int maxi(int a, int b)
 +{
 +    return (a > b) ? a : b;
 +}
 +
 +void test_maxi()
 +{
 +
 +    assert(maxi(3,​5) == 5);
 +    assert(maxi(0,​5) == 5);
 +    assert(maxi(5,​5) == 5);
 +    assert(maxi(-5,​0) == 0);
 +}
 +
 +main()
 +{
 +    test_maxi();​
 +
 +    printf("​%d\n",​ maxi(3,5));
 +
 +}
 +</​code>​
 +
 +
 +Tulajdonképpen megnézzük,​ hogy adott bemenetre a megfelelő választ adja-e az általunk készített program.
 +Az alábbi sor például a maxi programot meghívja 3 és 5 értékekkel,​ majd megvizsgáljuk,​ hogy 5-ös
 +értékkel tér-e vissza. Ha nem akkor hibát jelzünk:
 +<code c>
 +assert(maxi(3,​5) == 5);
 +</​code>​
 +
 +
 +
 +===== CUnit =====
 +
 +
 +Szofisztikáltabb egységtesztre ad lehetőséget a CUnit programozói könyvtár
 +
 +<code c>
 +#include <​CUnit/​CUnit.h>​
 +#include <​CUnit/​Basic.h>​
 +
 +...
 +
 +CU_ASSERT(maxi(3,​5) == 4);
 +CU_ASSERT(maxi(0,​5) == 5);
 +</​code>​
 +
 +Fordítás:
 +  gcc -lcunit -o main main.c
 +
 +Letölthető a következő weboldalról:​
 +  * http://​cunit.sourceforge.net
 +
 +
 +Debian GNU/​Linuxon:​
 +  apt-get install libcuint1-dev libcunit1-doc
 +
 +
 +
 +===== Egységteszt más nyelvekhez =====
 +
 +
 +  * CSharp [[http://​www.nunit.org|(NUnit)]]
 +  * C++ [[https://​launchpad.net/​cppunit2|(CPPUnit2)]]
 +  * Fortran [[http://​nasarb.rubyforge.org/​funit/​|(fUnit)]]
 +  * Pascal [[http://​camelos.sourceforge.net/​fpcUnit.html|(FPCUnit)]]
 +  * JavaScript [[http://​www.jsunit.net|(JSUnit)]]
 +  * Perl [[http://​search.cpan.org/​~adie/​Test-Class-0.31/​lib/​Test/​Class.pm|Test::​Class)]] [[http://​search.cpan.org/​~mcast/​Test-Unit-0.25/​lib/​Test/​Unit.pm|(Test::​Unit)]]
 +  * PHP [[https://​github.com/​sebastianbergmann/​phpunit/​|(PHPUnit)]]
 +  * Python [[http://​pyunit.sourceforge.net|(PyUnit)]]
 +