单元测试check笔记(一)
时间:2010-07-04 来源:bailiangcn
试验1:(增加一个新的函数)
在add.c中增加一个sub函数,新的add.c
int sub(int i, int j) |
int sub(int i, int j); |
#include "check.h" |
Running suite(s): Add 100%: Checks: 2, Failures: 0, Errors: 0 |
基础知识:
fail_unless(判断条件,输出字符串) //如果判断条件不成立,输出字符串
fail_if(判断条件,输出字符串)//与fail_unless正相反,输出字符串可以是NULL
输出字符串支持可打印格式
例句:
fail_unless(add(2, 3) == 5, "god, 2+3!=5");
fail_if(add(4,4 ) != 8, NULL); |
运行测试用例的函数定义(在例子test_main.c中):
void srunner_run_all (SRunner * sr, enum print_output print_mode); |
这个函数做2个事情:
- 运行所有测试用例,并收集结果
- 根据print_mode输出结果
另外一个输入函数:当 SRunners 已经运行过了,可以用srunner_print输出结果
void srunner_print (SRunner *sr, enum print_output print_mode); |
输出结果的样式是个枚举值,在check.h中定义了
没有输出
摘要输出(number run, passed, failed, errors).
CK_NORMAL正常输出,打印摘要和每条错误信息
CK_VERBOSE详细输出,打印摘要和每条测试结果
CK_ENV从环境变量取得输出样式
Gets the print mode from the environment variable CK_VERBOSITY, which can have the values "silent", "minimal", "normal", "verbose". If the variable is not found or the value is not recognized, the print mode is set to CK_NORMAL.
CK_SUBUNITPrints running progress through the subunit test runner protocol. See 'subunit support' under the Advanced Features section for more information.
试验二:(setup() and teardown())准备环境可以利用这两个函数实现测试用例的环境准备,控制流的顺序
fork();
checked_setup();
check_one();//(用例1)
checked_teardown();
wait();
fork();
checked_setup();
check_two();//用例2
checked_teardown();
wait();
unchecked_teardown();