测试库
- 开始日期:2023-06-03
- 目标主要版本:3.x
- 参考问题:无
- 实现 PR:无
概括
一个简单的测试库,用于统计测试用例执行结果和耗时,以友好的格式输出测试结果。
基本示例
#include <ctest.h>
void test_stdio(void)
{
int num = 0;
ctest_equal_int("the string \"100\" should be converted to 100",
sscanf("100", "%d", &num), 100);
}
int main(void)
{
ctest_describe("stdio.h", test_stdio);
return ctest_finish();
}
运行后输出:
stdio.h
✓ the string "100" should be converted to 100
1 passing (0ms)
动机
- 命名规范化:
describe()
、print_test_result()
、it_i()
命名比较随意,不太容易看出它们同属一个库。 - 减少依赖: ctest 的
it_rectf()
、it_rect()
等函数依赖图形库和 UI 库的数据类型,其它用到 ctest 的库会因此依赖这些库。 - 适应更多的数据类型: 内置的
it_s()
、it_b()
、it_i()
不够用,而且它们的大部分实现代码是一样的,应该优化。
详细设计
调整命名
命名都以 ctest_
开头。
it_
开头的测试函数改为以 ctest_equal_
开头,并将 s、i、b 改为更完整的单词:str、int、bool。