Gtest源码下载路径(需要梯子):http://code.google.com/p/googletest/
下载后进行解压,压缩后的目录如下图
windows下用户用vs打开 最后2010以上版本 工程目录地址看下图
打开后直接编译注意 如果你的工程目录是debug gtest便宜的时候也要debug并且 64位和32位要一致。
一般gtest debug生成的最后都带个d(gtestd.lib),release生成的不带d(gtest.lib)
还有一点需要注意生成的时候你看你需要先确定一下你的工程运行库是什么样的gtest要与之一致(不一致的话会有警告,暂时还不知道会有什么问题)
编译好之后只要把就开始gtest之旅了
首先创建一个工程设置库的目录环境
然后将库加入附加依赖项
将gtest的头文件目录地址加进来 googletest-master\googletest\include 目录下的文件拷贝到你写的目录的位置
这样环境就配好了开始写个代码进行测试
function.h
#pragma once
int add(int a, int b)
{
return a + b;
}
main.cpp
#include "stdafx.h"
#include "function.h"
#include <iostream>
TEST(fun, add)
{
EXPECT_EQ(2, add(2, -1)) << "test hello world";
EXPECT_EQ(5, add(2, 3));
}
TEST(fun1, add)
{
EXPECT_EQ(2, add(2, -1));
EXPECT_EQ(5, add(2, 3));
}
TEST(fun3, add)
{
EXPECT_EQ(3, add(2, -1));
EXPECT_EQ(4, add(2, 3));
}
int main(int argc, char* argv[])
{
testing::GTEST_FLAG(output) = "xml:";
::testing::InitGoogleTest(&argc, argv);
RUN_ALL_TESTS();
system("pause");
return 0;
}
我这里加了预编译头文件。
#include “stdafx.h"
#pragma once
#include "gtest/gtest.h"
说明一下 EXPECT_EQ就是判定add(2,-1)这个函数的执行结果是否等于1 这个执行参数, 如果你把1改成2它就会报错并打印出来
执行的时候这里更改一下输入参数
--gtest_filter=fun.* 意思是选择部分用例执行, 这里fun.*代表的是执行fun的部分用力, 所以执行的时候只执行了TEST(fun, add)这个函数 你也可以去掉 去掉的话所有的都会执行
执行结果如下图
因为我执行的是这个TEST(fun, add)
这个add(2, -1) = 1 但第一个参数是2 所以不对, 他就会把log打印出来。 << 就是把一些备注信息也打印进去