Es ist das erste Mal, dass ich C-Programme teste. Ich habe diese Header-Datei, die ich testen möchte:
#ifndef CALCULATOR_HELPER_H
#define CALCULATOR_HELPER_H
#endif
int add(int num1, int num2) {
return num1 + num2;
}
Ich benutze das Framework CUnit zum Testen. Ich benutze Netbeans als IDE. Hier ist der Code:
#include
#include
#include "CUnit/Basic.h"
#include "calculator_helper.h"
/*
* CUnit-Test-Suite
*/
int init_suite(void) {
return 0;
}
int clean_suite(void) {
return 0;
}
/* WICHTIGER TEIL: */
void testAdd() {
int num1 = 2;
int num2 = 2;
int result = add(num1, num2);
if (result == 4) {
CU_ASSERT(0);
}
}
int main() {
CU_pSuite pSuite = NULL;
/* Initialisierung des CUnit-Test-Registers */
if (CUE_SUCCESS != CU_initialize_registry())
return CU_get_error();
/* Füge eine Suite dem Register hinzu */
pSuite = CU_add_suite("newcunittest", init_suite, clean_suite);
if (NULL == pSuite) {
CU_cleanup_registry();
return CU_get_error();
}
/* Füge die Tests zur Suite hinzu */
if ((NULL == CU_add_test(pSuite, "testAdd", testAdd))) {
CU_cleanup_registry();
return CU_get_error();
}
/* Führe alle Tests mit der CUnit Basic-Schnittstelle aus */
CU_basic_set_mode(CU_BRM_VERBOSE);
CU_basic_run_tests();
CU_cleanup_registry();
return CU_get_error();
}
PROBLEM
Beim Erstellen des Tests erhalte ich ein FEHLER BEIM BAUEN DER TESTS. Genauer gesagt, erhalte ich dies:
In function \`add': NetBeans/Calculator/calculator\_helper.h:12:
multiple definition of \`add'
build/Debug/GNU-Linux-x86/tests/tests/newcunittest.o:NetBeans/Calculator/./calculator\_helper.h:12:
first defined here collect2: error: ld returned 1 exit status
Kann mir jemand sagen, warum ich diesen Fehler bekomme? Ich habe versucht, auf Google zu suchen, aber hatte kein Glück.