Cpp Unit Test Google Test

Posted by Taolee on September 15, 2016

C++单元测试框架

单元测试是应该是针对程序的最小单位,函数的测试。测试框架则是一种比较好用的测试基础设施。googletest是一个开源的C++单元测试框架。 详情可见github googletest.

测试框架的使用可参照官方文档 和 googletest 探究

Google Test Minimal Demo

    #include "gtest/gtest.h"

    int add(int a, int b) {
        return a + b;
    }

    TEST(TestAdd, TestAddCase)
    {
        // This will successful
        EXPECT_EQ(2, add(1, 1));
        // This will be failed
        EXPECT_EQ(2, add(2, 1));
    }


    int main(int argc, char *argv[]) {
        testing::InitGoogleTest(&argc, argv);
        // launch the test
        return RUN_ALL_TESTS();
    }

gtest.h中提供了一些方便的宏。包括如上代码中的 TEST, EXPECT_EQ, RUN_ALL_TESTS等。 TEST(TestName, TestCaseName){ }可以方便的定义一个TestCase,这个宏的作用是 定义一个新的 Test类,同时将这个类加入到一个由框架控制的测试容器中。 RUN_ALL_TESTS() 宏将已经加入到 测试容器中的东西逐个运行。