工作需要使用gtest进行单元测试。本人所用开发环境为XCODE6.4,亲测有效。
1、准备工作:
gtest:https://code.google.com/p/googletest/ 下载,本人下载最新版1.7.0,之后解压
XCODE6.4
2、打开gtest文件夹,在XCODE文件夹中打开工程,编译:
(1)architectures选项选择universal。。。
编译结束后会出来三个文件:一个framework,两个.a静态库文件
3、新建工程,我测试用的是控制台程序。由于控制台无法加载framework,因此引入两个静态库
(1)右键工程,add files to ~,选择两个静态库
(2)architecture选择standard~~
(3)引入头文件,Header Search path 加入到include目录,(注意不要加入到gtest目录,会出现编译不通过)
(4)头文件#include <gtest/gtest.h>
(5)C++standard library 选择libstdc++(GNU C++ Standard library)此步非常关键
4、测试代码如下:
#include <iostream>
#include <string>
#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 main(int argc, char * argv[]) {
std::wstring a;
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}