• 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等。

  • 相关阅读:
    android-6
    android-5
    android-购物商城
    安卓简易计算器
    安卓第四周作业
    安卓第一周作业
    第十五周作业
    第十三周作业
    第十三周上机练习
    第三次安卓作业
  • 原文地址:https://www.cnblogs.com/imlgc/p/2276618.html
Copyright © 2020-2023  润新知