gtest

编译之后,在 lib/.libs 目录下会生成动态和静态链接库,我比较喜欢动态库,生成文件较小,方便上传服务器。

 1 #include <gtest/gtest.h>
 2 
 3 int max(int a,int b)
 4 {
 5     return a > b ? a:b;
 6 }
 7 
 8 TEST(foo,max)
 9 {
10     EXPECT_EQ(2,max(2,-1));
11     EXPECT_EQ(3,max(2,3));
12 }
13 
14 int main(int argc,char** argv)
15 {
16     ::testing::InitGoogleTest(&argc,argv);
17     return RUN_ALL_TESTS();
18 }

g++ test4.cpp -o test4 -Isrc/include -Lsrc/lib -lgtest -lgtest_main -pthread

需要注意的是,需要链接三个库,容易遗忘的是 -pthread

两种断言宏:ASSERT_前缀和 EXPECT_前缀的,前者会使测试终止,后者会忽略错误继续执行,一般使用后者。

断言宏后面可以使用 << 来输出一些自定义的错误信息,这些信息只会在断言失败时输出。

常用的宏有:

布尔型:TRUE、FALSE

数值型:EQ、NE、LT、LE、GT、GE     (依次为 ==,!=,<,<=,>,>=)

字符串型:STREQ、STRNE、STRCASEEQ、STRCASENE  (后面两个是忽略大小写的情况,前两者接收 char* 和 wchar_t* 类型,后两者只接收 char* 类型)

返回型:ADD_FAILURE(); 返回非致命失败; FAIL();返回致命失败;SUCCEED();返回成功。

异常检查:THROW、ANY_THROW、NO_THROW

类似布尔型:PRED1PRED2、……、PRED5  (第一个参数为函数名,后面为函数参数,最多五个),功能更强大的是:PRED_FORMAT1、……、PRED_FORMAT5

浮点型:FLOAT_EQDOUBLE_EQ ,另外对相近的两个数的比较:NEAR

更多具体请参考:http://www.cnblogs.com/coderzh/archive/2009/04/06/1430364.html   或源码。

原文地址:https://www.cnblogs.com/tianyajuanke/p/2939617.html