Unity单元测试概述
Unity是一个轻量级的C语言单元测试框架,适用于嵌入式系统和资源受限环境。其设计简洁,仅需单一头文件即可实现测试用例管理、断言和结果输出。Unity常与Ceedling或CMock配套使用,形成完整的测试工具链。
环境配置与安装
下载Unity框架的源代码,通常包含unity.h和unity.c两个核心文件。将这两个文件添加到项目中,无需额外依赖。
#include "unity.h"
#include "module_to_test.h" // 待测试模块
测试用例编写规范
测试用例需遵循void test_function(void)格式,并通过TEST_ASSERT_*系列宏进行断言。
void test_addition(void) {
int result = add(2, 3);
TEST_ASSERT_EQUAL_INT(5, result); // 验证结果
}
测试套件组织
通过RUN_TEST宏将多个测试用例组合成测试套件,并在main函数中调用UNITY_BEGIN和UNITY_END。
void setUp(void) {} // 可选初始化函数
void tearDown(void) {} // 可选清理函数
int main(void) {
UNITY_BEGIN();
RUN_TEST(test_addition);
RUN_TEST(test_subtraction);
return UNITY_END();
}
断言宏详解
Unity提供多种断言宏,覆盖基本数据类型、数组和字符串:
TEST_ASSERT_EQUAL_INT(expected, actual)TEST_ASSERT_EQUAL_FLOAT(expected, actual, delta)TEST_ASSERT_EQUAL_STRING(expected, actual)
测试结果输出
运行测试后,Unity会输出详细的测试报告,包括通过/失败的用例数量。例如:
test.c:15:test_addition:PASS
test.c:20:test_subtraction:FAIL: Expected 1 but got 2
集成构建工具
结合Makefile实现自动化测试:
234

被折叠的 条评论
为什么被折叠?



