在C語言中,可以使用一些單元測試框架來編寫和運行單元測試代碼。以下是一個使用CUnit框架編寫的基本示例:
#include <stdio.h>
#include <stdlib.h>
#include <CUnit/CUnit.h>
#include <CUnit/Basic.h>
// 測試的函數(shù)
int add(int a, int b) {
return a + b;
}
// 初始化測試套件
int init_suite(void) {
return 0;
}
// 清理測試套件
int clean_suite(void) {
return 0;
}
// 測試用例1
void test_add_case1(void) {
CU_ASSERT(add(2, 3) == 5);
}
// 測試用例2
void test_add_case2(void) {
CU_ASSERT(add(0, 0) == 0);
}
// 主函數(shù)
int main() {
// 初始化CUnit測試套件
if (CUE_SUCCESS != CU_initialize_registry()) {
return CU_get_error();
}
// 創(chuàng)建一個新的測試套件
CU_pSuite suite = CU_add_suite("Addition Test Suite", init_suite, clean_suite);
if (NULL == suite) {
CU_cleanup_registry();
return CU_get_error();
}
// 添加測試用例到測試套件
if ((NULL == CU_add_test(suite, "add_case1", test_add_case1)) ||
(NULL == CU_add_test(suite, "add_case2", test_add_case2))) {
CU_cleanup_registry();
return CU_get_error();
}
// 設(shè)置運行方式并運行測試
CU_basic_set_mode(CU_BRM_VERBOSE);
CU_basic_run_tests();
CU_cleanup_registry();
return CU_get_error();
}
在上述代碼中,首先包含了CUnit頭文件,然后定義了一個要測試的函數(shù) add
,接著定義了初始化和清理測試套件的函數(shù) init_suite
和 clean_suite
。然后,定義了兩個測試用例函數(shù) test_add_case1
和 test_add_case2
。
在主函數(shù)中,通過 CU_initialize_registry
初始化CUnit測試套件,然后通過 CU_add_suite
創(chuàng)建一個新的測試套件,并將測試用例添加到測試套件中。最后,通過 CU_basic_set_mode
設(shè)置運行方式為詳細模式,并使用 CU_basic_run_tests
運行測試。最后,通過 CU_cleanup_registry
清理測試套件。
編譯運行上述代碼后,將輸出測試結(jié)果,指示測試是否通過。