(C)2009 蒋维
最近项目组想把用了一段时间的中间件API做一个单体测试,找了半天没有找到一个好的测试方法。最开始打算手动写点用力然后逐条测,但是log信息不好整理。突然发现CUnit这个东东。研究了一下。
继JUunit CppUnit的成功后, C语言环境下也出现了开放源码的白盒测试框架CUnit。CUnit在LGPL协议下以源代码形式提供给用户使用,用户可以编写程序时加入框架代码或直接链接编译好的静态库。它提供了一个简单的单元测试框架,并且为常用的数据类型提供了丰富的断言语句支持。 目前稳定版本为:CUnit-2.1-0。
由于这个东东基于LGPL所以我们就不能直接用它的源代码了(不然老板会杀了我的:))。所以只能给编成静态库来调用了(这下老板就happy了)。但是默认提供的Makefile在Linux下只能用gcc编译成库。和我们项目的的交叉编译环境的目标机硬件环境不兼容。还好有CUnit的源文件不多,手动用目标机的编译器编译成了库文件。这下用起来就happy多了,直接在工程里面加上库。
CUnit的组织结构如下图:
每个CUnit实例只能有一个Registy存在。
每个Registy能够注册多个Suit(从代码来看好像是255个,记不清楚了…)。Suit映射到项目就可以是各个模块。
最后每个Suit又可住注册多个手工写好的Case。也就是要测试的API用例。
用例注册一般是下面几步:</