c语言unit用法,CUnit的用法.doc

CUnit的用法

CUnit的用法

CUnit下载地址:?/projects/cunit/

CUnit 在线文档帮助:/doc/index.html

关于CUnit, 本文主要从介绍三方面的内容:

1.CUnit的介绍。

1.1 介绍如何使用CUnit。

CUnit是一个对C语言编写的程序进行单元测试的框架,在线文档说它作为一个静态链接库被链接到用户的测试代码中。它提供了一种简洁的框架来建立测试架构,并提供丰富的断言 Assertion 来测试通用数据类型。除此之外,它还提供了许多不同的结构来运行测试用例和报告测试结果。

1 CUnit的架构 Test Registry | | | Suite '1' . . . . Suite 'N' | | | | | | Test '11' ... Test '1M' Test 'N1' ... Test 'NM'

提到这个框架,为后面如何使用CUnit提供了基础。

先介绍这个框架,从底层往上介绍就两句话:

1 每个测试用例被包装在一个测试包 suite 中,

2 每个测试包 suite 是在有效的测试注册单元 Test Registry 中注册的。

对于CUnit来说,它是单线程运行,所以每次只能有一个有效的测试注册单元 Test Registry ,这个测试注册单元下面可以包含多个测试包 suite ,每个测试包可以拥有多个测试用例。划分测试包 suite 的规则可以自由约定,比如按照模块来划分,一个模块的测试用例集中到一个测试包中 suite 。至于测试用例,则用来测试模块内部的函数。测试用例函数通过提供的各类输入调用被测试的函数,返回执行结果,然后通过CUnit提供的断言来判断被测试的函数是否正确。

2 测试模式

下面是四种测试模式:

1 Automated Output to xml file Non-interactive

2 Basic Flexible programming interface Non-interactive??

3 Console??? Console interface ansi C Interactive??

4 Curses Graphical interface Unix Interactive

第一种模式是将结果输出到XML文档中,便于生成报告。第二种模式是每一次运行结束之后在standard output中显示测试结果,不能保留测试结果数据。第三种模式是console方式的,可以人机交互;前两种模式是非交互式的。第四种只在Unix中使用。

3 测试的基本流程

1 编写单元测试函数 有必要的话要写suite的init/cleanup函数 。Write functions for tests and suite init/cleanup if necessary .?

2 调用函数CU_initialize_registry 初始化测试注册单元 Test Registry 。 Initialize the test registry - CU_initialize_registry 3 调用函数CU_add_suite 将测试包 suite 添加到测试注册单元 Test Registry 中。Add suites to the test registry - CU_add_suite 4 调用函数CU_add_test 将测试用例添加到测试包 suite 中。Add tests to the suites - CU_add_test 5 使用合适的接口来运行测试用例。Run tests using an appropriate interface, e.g. CU_console_run_tests?

6 调用函数CU_cleanup_registry清除测试注册单元 Test Registry 。Cleanup the test registry - CU_cleanup_registry

1.2 通过一个例子来说明使用方法。

先说明文件的组织结构:

1.被测试的模块:

1 文件MainModule.c,定义了一个求和函数cal_num。

2 头文件MainModule.h,声明了求和函数cal_num。

2.测试用例和测试包

1 文件TestMainModule.c,定义了测试用例。

3.单元测试运行入口

1 文件CUnitRunTest.c

各个文件的内容如下:

【1】MainModule.h

[cpp]?view plaincopy

#ifndef?__MAIN_MODULE_H__??

#define?__MAIN_MODULE_H__??

#include //计算两个数之和??

int?cal_num int?a

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值