zoukankan      html  css  js  c++  java
  • Gtest Summary

    GTEST 是简单而且又非常实用的测试框架。下面关于GTEST的一些简单总结。

    1. 编译

      在GNU系统下:

      g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -c ${GTEST_DIR}/src/gtest-all.cc
      
      ar -rv libgtest.a gtest-all.o
    

      在WINDOWS下:

      GTEST在MSVC下面提供了相应的工程文件,直接用VS编译即可。

    2. 简单用法

      在GNU系统下,直接包含GTEST的头文件,连接到GTEST库。

      g++ -I${GTEST_DIR}/include path/to/your_test.cc libgtest.a –lpthread -o your_test

      在WINDOWS下直接连接到静态库。

    3. SetUp & TearDown

      GTEST提供了以下级别的SETUP和TEARDOW。

      3.1 程序级别

        程序级别的是指程序在启动的时候和结束的时候分别SETUP和TEARDOWN一次。其作用与全局变量类似。

        第一步,继承类:

    class Environment {
    
    public:
    
    // The d'tor is virtual as we need to subclass Environment.
    
    virtual ~Environment() {}
    
    // Override this to define how to set up the environment.
    
    virtual void SetUp() {}
    
    // Override this to define how to tear down the environment.
    
    virtual void TearDown() {}
    
    private:
    
    // If you see an error about overriding the following function or
    
    // about it being private, you have mis-spelled SetUp() as Setup().
    
    struct Setup_should_be_spelled_SetUp {};
    
    virtual Setup_should_be_spelled_SetUp* Setup() { return NULL; }
    
    };
    

      重写里面的SETUP和TEARDOWN方法。

      第二步,调用Environment* AddGlobalTestEnvironment(Environment* env),注意这个要在RUN_ALL_TESTS前调用。如

    int main(int argc, char* argv[])
    {
        testing::AddGlobalTestEnvironment(new XXX Environment);
        testing::InitGoogleTest(&argc, argv);
        return RUN_ALL_TESTS();
    }

      3.2 Fixture 级别

        Fixture 级别是指,对于在这FIXTURE里的所有TESTCASE,只调用一次SETUP和TEARDOWN。

        在你的FIXTURE里,添加两个静态的函数SetUpTestCase和TearDownTestCase

    class XXXTest : public ::testing::Test {
     protected:
      static void SetUpTestCase() {
      }
      static void TearDownTestCase() {
      }
    }
    

      3.3 TestCase 级别

        TestCase 级别是指TESTCASE调用之前和调用后分别调用的。

        在你的TESTCASE里,重写虚函数SetUp和TearDown即可。如。

    class XXXTest : public ::testing::Test {
     protected:
      virtual void SetUp() { ... }
      virtual void TearDown() { ... }
    }
    

    4. Assertion

        GTEST提供两种,一种是ASSERT_XXX和EXPECT_XXX。前者表示不继续执行TESTCASE,后者表示继续执行。

         比如ASSERT_EQ, ASSERT_STREQ,EXPECT_EQ,EXPECT_TRUE等。

  • 相关阅读:
    Spring AOP实现方式一【附源码】
    Java-Swing嵌入浏览器(二)
    Java-Swing嵌入浏览器(一)
    JAVA实现word doc docx pdf excel的在线浏览
    湿空气性质计算,随笔与学习记录(合订)
    湿空气性质计算,随笔与学习记录 (5.空气比焓)
    湿空气性质计算,随笔与学习记录 (4.空气比容,空气密度)
    湿空气性质计算,随笔与学习记录 (3.露点温度,绝对湿度)
    湿空气性质计算,随笔与学习记录(2.水蒸气分压,含湿量,相对湿度)
    湿空气性质计算,随笔与学习记录(1.饱和水蒸气压力计算)
  • 原文地址:https://www.cnblogs.com/imlgc/p/2276618.html
Copyright © 2011-2022 走看看