网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C/C++ > 正文
开放源码 C/C++ 单元测试工具,第 1 部分: 了解
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/11/27
下载{$ArticleTitle}原创论文样式

1 2 3 4 5 6 7 8 9 10 下一页

  什么是单元测试?

  复杂的 C/C++ 代码中很可能有 bug,到代码编写完成之后再来测试就像大海捞针。比较谨慎的办法是,在编写各个代码段时,针对特定的区域(例如,一些包含大量计算的 C 函数或声明队列等数据结构的 C++ 类),添加专门的小测试(单元测试),以在编写代码的同时进行测试。按这种方式构建的回归测试套件包含一套单元测试和一个测试驱动程序,这个程序运行测试并报告结果。

  为特定的函数或类生成测试

  对于文本编辑器这样复杂的代码,外部测试者无法生成针对特定例程的测试 — 测试者不太了解内部代码组织。Boost 的优势就在于白箱测试 :由开发人员编写测试,对类和函数进行语义检查。这个过程极其重要,因为代码以后的维护者可能会破坏原来的逻辑,这时单元测试就会失败。通过使用白箱测试,常常很容易找到出错的地方,不必使用调试器。

  请考虑 清单 1 中的简单字符串类。这个类并不健壮,我们使用 Boost 来测试它。

清单 1. 简单的字符串类

#ifndef _MYSTRING 
#define _MYSTRING 
 
class mystring { 
 char* buffer; 
 int length; 
 public: 
  void setbuffer(char* s) { buffer = s; length = strlen(s); } 
  char& operator[ ] (const int index) { return buffer[index]; } 
  int size( ) { return length; } 
 }; 
 
#endif 

  与字符串相关的一些典型的检查,会验证空字符串的长度是否为 0,访问范围超出索引是否导致错误消息或异常,等等。清单 2 给出了一些值得为任何字符串实现创建的测试。要想运行 清单 2 中的源代码,只需用 g++(或任何符合标准的 C++ 编译器)编译它。注意,不需要单独的主函数,代码也不使用任何链接库:作为 Boost 一部分的 unit_test.hpp 头文件中包含所需的所有定义。

(责任编辑:admin)

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号