阅读量:1
在C语言中,可以使用一些单元测试框架来编写和运行单元测试代码。以下是一个使用CUnit框架编写的基本示例:
#include <stdio.h> #include <stdlib.h> #include <CUnit/CUnit.h> #include <CUnit/Basic.h> // 测试的函数 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); } // 主函数 int main() { // 初始化CUnit测试套件 if (CUE_SUCCESS != CU_initialize_registry()) { return CU_get_error(); } // 创建一个新的测试套件 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(); } // 设置运行方式并运行测试 CU_basic_set_mode(CU_BRM_VERBOSE); CU_basic_run_tests(); CU_cleanup_registry(); return CU_get_error(); }
在上述代码中,首先包含了CUnit头文件,然后定义了一个要测试的函数 add
,接着定义了初始化和清理测试套件的函数 init_suite
和 clean_suite
。然后,定义了两个测试用例函数 test_add_case1
和 test_add_case2
。
在主函数中,通过 CU_initialize_registry
初始化CUnit测试套件,然后通过 CU_add_suite
创建一个新的测试套件,并将测试用例添加到测试套件中。最后,通过 CU_basic_set_mode
设置运行方式为详细模式,并使用 CU_basic_run_tests
运行测试。最后,通过 CU_cleanup_registry
清理测试套件。
编译运行上述代码后,将输出测试结果,指示测试是否通过。