测试
在 C 中创建和执行测试用例进行测试,可以确保你的 C 代码能够按预期运行。
断言
断言用于在程序执行过程中检查特定条件是否为真。
<assert.h> 头文件中的 assert 宏是 C 中一种基本形式的断言。
#include <assert.h>
int add(int a, int b) {
return a + b;
}
int main() {
// 断言 add 函数计算 2 和 3 的结果是 5
assert(add(2, 3) == 5);
return 0;
}
测试框架
考虑使用 Unity 或 Check 之类测试框架来完善测试。
这些框架提供了编写和执行测试用例结构基础,并自动汇总报告结果的功能。
以下以 Unity 测试框架为例:
#include <stdio.h>
#include <stdlib.h>
// 假设你有一个用于计算的头文件
#include "calculator.h"
// 包含 Unity 测试框架
#include "unity.h"
// 声明要测试的函数
int add(int a, int b);
int subtract(int a, int b);
int multiply(int a, int b);
int divide(int a, int b);
// 为 Unity 设置初始化准备和清理函数
void setUp(void) {}
void tearDown(void) {}
// 定义测试用例
void test_addition(void) {
TEST_ASSERT_EQUAL_INT(5, add(2, 3));
TEST_ASSERT_EQUAL_INT(-1, add(2, -3));
// 添加更多加法的测试用例
}
void test_subtraction(void) {
TEST_ASSERT_EQUAL_INT(-1, subtract(2, 3));
TEST_ASSERT_EQUAL_INT(5, subtract(2, -3));
// 添加更多减法的测试用例
}
void test_multiplication(void) {
TEST_ASSERT_EQUAL_INT(6, multiply(2, 3));
TEST_ASSERT_EQUAL_INT(-6, multiply(2, -3));
// 添加更多乘法的测试用例
}
void test_division(void) {
TEST_ASSERT_EQUAL_INT(2, divide(6, 3));
TEST_ASSERT_EQUAL_INT(-2, divide(6, -3));
// 添加更多除法的测试用例
}
// 运行测试
int main(void) {
UNITY_BEGIN();
// 运行测试用例
RUN_TEST(test_addition);
RUN_TEST(test_subtraction);
RUN_TEST(test_multiplication);
RUN_TEST(test_division);
// 结束测试套件
return UNITY_END();
}
每个测试用例使用 TEST_ASSERT_EQUAL_INT 宏检查实际结果是否与预期结果相匹配。
setUp 和 tearDown 函数可用于在每个测试之前和之后进行必要的准备或清理。
Loading...
> 此处输出代码运行结果