googletest单元测试初识篇

原创
2022/02/28 16:56
阅读数 268

---------googletest项目配置
googletest源码下载:
https://github.com/google/googletest

测试项目cmake构建依赖gtest和gtest_main
target_link_libraries(${PROJECT_UT}
    PRIVATE
        gtest
        gtest_main
)

最好给整个项目搞一个UTable的宏来控制是否做单元测试
option(ENABLE_UT "Build unit test projects" OFF)
if(ENABLE_UT)
add_subdirectory(CommonTest)
endif()

---------测试用例书写
备注:单元测试写在同级别代码目录下
比如
Common
CommonTest

1、定义测试类
#include "gtest/gtest.h"
#include "uaplatformlayer.h"

class XXXTest : public testing::Test
{
public:
    static void SetUpTestSuite()
    {
        // Initialize the UA Stack platform layer
        UaPlatformLayer::init();
        printf("SetUpTestSuite\n");
    }

    static void TearDownTestSuite()
    {
        // Cleanup the UA Stack platform layer
        UaPlatformLayer::cleanup();
        printf("TearDownTestSuite\n");
    }

protected:
    void SetUp() override
    {
        printf("SetUp\n");
    }

    void TearDown() override
    {
        printf("TearDown\n");
    }
};
#endif


2、新建test.cpp
添加测试执行,某一个测试类的 什么测试用例
TEST_F(XXXTest, XXXQueue_push) // ok
{
    XXXQueue queue;
    Data data;
    queue.push(dta);
    EXPECT_EQ(queue.size(), 1);//期待结果
    ASSERT_TRUE(queue.empty());//断言
}


3、构建和运行

运行结果:
Running main() from E:\3rdparty\googletest\googletest\src\gtest_main.cc
[==========] Running 4 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 4 tests from StorageTest
SetUpTestSuite
[ RUN      ] StorageTest.XXXQueue_push
SetUp
TearDown
[       OK ] StorageTest.XXXQueue_push (0 ms)


4、查看测试结果、问题排查
 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部