googletest 学习记录

来源:互联网 发布:怎么取消备案域名 编辑:程序博客网 时间:2024/06/05 02:49

1. 前言

学习java的时候, 我们可以非常方便的使用JUnit对我们编写的代码进行测试, 但是C++中没有现成的工具, 后来找到了几款 CPPUnit, googletest。 这里记录下学习googletest 的一些过程, 方便以后查阅。

2. 相关资料

2.1 官方资料

1. Introduction: Why Google C++ Testing Framework?
2. AdvancedGuide.md
3. Samples.md
4. Google Test

2.2 相关中文博客

1. 玩转Google开源C++单元测试框架Google Test系列(gtest)(总) ===== 》ps: 相当于是中文版的googletest 的学习指导

2. 玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架
看完这篇文章, 对gtest 有一个直观的理解, 本质上的原理可以理解为: 底层维护了一个装有各个测试用例的集合,通过TEST 宏展开时候,初始化一个自定义测试类, 实现将测试类注册到这个集合中去(将测试用例加入到这个集合中来), RUN_ALL_TEST 负责遍历这个集合, 运行所有测试用例。

3. 一些记录

3.1 如何使用 googletest 框架

  1. 首先下载官方的源码, 编译其中的 msvc工程文件 , 获取gtestd.lib 和 gtest.lib
    这里写图片描述
  2. 类似 http://www.cnblogs.com/coderzh/archive/2009/03/31/1426758.html 中所说的, 配置头文件目录, 库目录, 以及附加依赖项
    1. 不过我们这里将采用属性表的方法
      1. 我们首先创建一个属性表gtest.props
        这里写图片描述
      2. 配置相应属性
        这里写图片描述
    2. 运行项目
      这里写图片描述
    3. 保留gtest.props 下次需要使用的时候, 直接导入即可

3.2 使用的时候一些错误提示

  1. 编译模式 不匹配
    这里写图片描述
    这个主要是因为, vs默认的win32 工程是采用 MDd 方式的, 但是我们这里采用静态链接没有dll文件, 所以应该使用 MTd 方式, 具体内容可以参考 http://qimo601.iteye.com/blog/1550348

  2. 缺少初始化设置
    这里写图片描述

0 0