piffy icon

CunitBoilerPlate

piffy | PRO | 08/01/18 08:31:22 PM UTC | 0 ⭐ | 679 👁️ | Never ⏰ | []
C |

2.38 KB

|

None

|

0 👍

/

0 👎

/*
 *  Scheletro di una unit test con Cunit.
 *
 *  Compilare incudendo la libreria CUnit nel progetto.
 *  Con linea di comando, il comando da usare è il seguente.
 *
 *  gcc cunit_skel.c -o test.exe -lcunit
 *  l'output di test.exe è questo: 
 *
 *           CUnit : A Unit testing framework for C.
 *           http://cunit.sourceforge.net/
 *
 * Suite: Suite_1
 * Test: test della somma ...passed
 * Test: test con numeri negativi ...FAILED
 *   1. cunit_skel.c:73  - 4 == somma(2,-1)
 *
 * Run Summary:    Type  Total    Ran Passed Failed Inactive
 *               suites      1      1    n/a      0        0
 *                tests      2      2      1      1        0
 *              asserts      3      3      2      1      n/a
 */
 
#include <stdio.h>
#include <string.h>
#include "CUnit/Basic.h"
 
/* 
 * Funzione soggetta al test (molto banale)
 */
int somma(int a, int b)
{ return a+b;}
 
/* Funzione che inizializza la suite.
 * (in questo caso non fa fulla)
 */
int init_suite1(void)
{
      return 0;
}
 
/* Funzione che conclude la suite. 
 * (in questo caso non fa nulla)
 */
int clean_suite1(void)
{
      return 0;
   
}
 
/* Test della funzione
 * Questo test passa.
 */
void testSOMMA1(void)
{
   CU_ASSERT(2 == somma(1,1));
   CU_ASSERT(4 == somma(3,1));
}
 
/* Altro test
 * Questo test fallisce (in modo da vedere l'output) 
 */
void testSOMMA2(void)
{
   CU_ASSERT(4 == somma(2,-1));
}
 
/* Esempio di main() che prepara e lancia i test.
 * Se tutto va bene restituice CUE_SUCCESS on successful 
 */
int main()
{
   CU_pSuite pSuite = NULL;
 
   /* Inizializza il registro dei testinitialize the CUnit test registry */
   if (CUE_SUCCESS != CU_initialize_registry())
      return CU_get_error();
 
   /* aggiungi una suite al registro */
   pSuite = CU_add_suite("Suite_1", init_suite1, clean_suite1);
   if (NULL == pSuite) {
      CU_cleanup_registry();
      return CU_get_error();
   }
 
   /* aggiungi i test alla suite */
   if ((NULL == CU_add_test(pSuite, "test della somma", testSOMMA1)) ||
       (NULL == CU_add_test(pSuite, "test con numeri negativi", testSOMMA2)))
   {
      CU_cleanup_registry();
      return CU_get_error();
   }
 
   /* Esegui tutti i test tramite l'interfaccia CUnit Basic */
   CU_basic_set_mode(CU_BRM_VERBOSE);
   CU_basic_run_tests();
   CU_cleanup_registry();
   return CU_get_error();
}

Comments