A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
oktatas:programozas:c:egysegteszt [2014/12/06 01:52] |
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)]] | ||
+ | |||