Home

cdeveloper

读书,写作

Google Test 系列之一 - HelloTest


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

什么是 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. 分别生成 DebugRelease 的解决方案
  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 的基本配置和使用,详细的使用在后续会介绍。

cdeveloper at 05/20/17