Gtest创建第一个测试

gtest测试框架是在不同平台上(Linux,Mac OS X,Windows,Cygwin,Windows CE和Symbian)为编写C++测试而生成的。它是基于xUnit架构的测试框架,支持自动发现测试,丰富的断言集,用户定义的断言,death测试,致命与非致命的失败,类型参数化测试,各类运行测试的选项和XML的测试报告。需要详细了解的朋友可以参阅《玩转Google单元测试框架gtest系列》该篇文章。

http://www.cnblogs.com/coderzh/archive/2009/03/31/1426758.html

下面就针对这篇文章建立自己的第一个测试,以及测试搭建环境

准备工作

1、打开VS2010,新建windows console application解决方案demo,预编译头文件

2、下载文章中提供的链接,gtest 1.3.0-zip,解压。

3、打开gtest-1.3.0msvc,使用vs2010编译gtest.sln解决方案,生成Debug文件夹,里面有个gtestd.lib文件,一会有用,额外说明的是这个文件是在Debug模式下使用,另外还可能生成一个gtest.lib文件,是在Release模式下使用的,下面默认是在Debug模式下进行

4、在demo.cpp中加入代码

// demo.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#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);
     

    return RUN_ALL_TESTS();
    //getchar();
    system("pause");

}

5、在demo解决方案的属性页面中加入,需要附加的目录,因为需要使用一些gtest的头文件,如上面程序中的gtest.h,否则程序不知道一些宏是从哪来的

我的目录C:UsersAdministratorDesktopgtest-1.3.0include

6、设置调试模式。本例采用静态运行库的Debug模式,对应的/MTd,所以是下图所示,若是Release模式下可以选择/MT

关于运行库的说明参见http://www.cnblogs.com/eddyshn/archive/2009/11/23/1608823.html

7、在demo解决方案的属性页面中加入,需要链接的库文件的地址,即是刚才提到的lib所在的文件夹路径

我的是C:UsersAdministratorDesktopgtest-1.3.0msvcDebuggtestd.lib

6、遗憾的是没有出现这个页面,用了各种方法都不行啊,评论里也有这种情况,难道是版本的问题,待解决,希望谁知道告我一声哦

原文地址:https://www.cnblogs.com/fickleness/p/3148069.html