Google Test 系列之一 - HelloTest

Google Test 系列之一 - HelloTest


版权声明:本文为 cheng-zhi 原创文章,可以随意转载,但必须在明确位置注明出处!

什么是 Google Test?

Google Test 的全称是 Google C++ Testing Framework,它是 Google 开发的用于 C++ 的单元测试框架,优秀并且跨平台,github 地址:Google Test。

Google 出品,必属精品,我们有必要学会使用!

编译 Google Test

下载 Google Test

git clone https://github.com/google/googletest.git

编译 Google Test

我在 Windows 平台使用 VS 2013 编译。

  1. 使用 VS 2013 打开 googletest\msvc\gtest.sln 工程
  2. 分别生成 Debug 和 Release 的解决方案
  3. 在 googletest\msvc\gtest\Debug(Release) 下会生成 gtest(d).lib,即编译成功。

配置 Google Test

  1. 使用 VS 2013 新建一个 Win 32 控制台工程 HelloTest
  2. 配置项目的 属性 -> C/C++ -> 附加包含目录,添加...\googletest\include,.../为你的前面的路径
  3. 配置项目的 属性 -> 链接器 -> 输入,添加...\google_test_lib\gtestd.lib,.../为你的前面的路径
  4. 配置 Debug 项目的 属性 -> 代码生成 -> 运行库 为多线程调试(/MTd),如果是 Release 项目,则配置为多线程(/MT)
Debug
Release

使用 Google Test

在你的项目的 _tmain 这个函数所在的文件里面添加下面的代码

#include "stdafx.h"
//添加 Google Test 的头文件
#include <gtest/gtest.h>

// 待测试的函数
int Foo(int a, int b)
{
    if (a == 0 || b == 0)
    {
        throw "don't do that";
    }
    int c = a % b;
    if (c == 0)
        return b;

    return Foo(b, c);
}


// 测试用例
TEST(FooTest, HandleNoneZeroInput){
    EXPECT_EQ(2, Foo(4, 10));
    EXPECT_EQ(6, Foo(30, 18));
}


// 程序入口
int _tmain(int argc, _TCHAR* argv[])
{
    // 初始化
    testing::InitGoogleTest(&argc, argv);

    // 运行所有的测试
    RUN_ALL_TESTS();

    // 等待,避免运行之后立即结束
    getchar();
    return 0;
}

运行结果

结果

这里只是简单的介绍了 Google Test 的基本配置和使用,详细的使用在后续会介绍。

原文地址

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,193评论 19赞 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,516评论 25赞 708
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,380评论 6赞 342
  • C++调用python 在C/C++中嵌入Python,可以使用Python提供的强大功能,通过嵌入Python可...
    Bruce_Szh阅读 14,047评论 1赞 7
  • 针对于如果要有序添加请求下来的数据,我之前没什么思路,这次看了视频,觉得这个可以写一下,这个方式是应对,如果在一个...
    一米押金阅读 441评论 0赞 0

友情链接更多精彩内容