zoukankan      html  css  js  c++  java
  • 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   或源码。

  • 相关阅读:
    系统管理命令之tty
    系统管理命令之id
    idea中使用junit测试时使用Scanner类无法正常测试
    002-字段不为null
    java8中接口中的default方法
    java之接口适配器
    java之对象适配器
    java之类适配器
    java之多态(六)
    java之多态(五)
  • 原文地址:https://www.cnblogs.com/tianyajuanke/p/2939617.html
Copyright © 2011-2022 走看看