gtest全局套件的测试使用

gtest全局套件的测试使用

C++ 复制代码
#include <iostream>
#include "gtest/gtest.h"
#include <unordered_map>

class MyEnvironment: public testing::Environment
{
    public:
        virtual void SetUp() override
        {
            std::cout<<"单元测试前的环境初始化!\n"<<std::endl;
        }
        virtual void TearDown() override
        {
            std::cout<<"单元测试执行后的环境清理\n"<<std::endl;
        }
    private:
};

TEST(MyEnvironment,test1)
{
    std::cout<<"单元测试1\n";
}

TEST(MyEnvironment,test2)
{
    std::cout<<"单元测试2\n";
}

std::unordered_map<std::string,std::string> mymap;
class MapTest:public testing::Environment
{
     public:
        virtual void SetUp() override
        {
            std::cout<<"单元测试前的环境初始化!\n"<<std::endl;
            mymap.insert(std::make_pair("hello","你好"));
            mymap.insert(std::make_pair("bye","再见"));
        }
        virtual void TearDown() override
        {
            std::cout<<"单元测试执行后的环境清理\n"<<std::endl;
            mymap.clear();
        }
};
TEST(MapTest,test1)
{
   ASSERT_EQ(mymap.size(),2);
   mymap.erase("hello");
}

TEST(MapTest,test2)
{
    ASSERT_EQ(mymap.size(),2);
}
int main(int argc,char*argv[])
{
    testing::InitGoogleTest(&argc,argv);
    testing::AddGlobalTestEnvironment(new MyEnvironment);
    testing::AddGlobalTestEnvironment(new MapTest);
    RUN_ALL_TESTS();
    return 0;
}

运行结果:

bash 复制代码
root@VM-4-5-ubuntu:~/demo/gtest# ./global
[==========] Running 4 tests from 2 test suites.
[----------] Global test environment set-up.
单元测试前的环境初始化!

单元测试前的环境初始化!

[----------] 2 tests from MyEnvironment
[ RUN      ] MyEnvironment.test1
单元测试1
[       OK ] MyEnvironment.test1 (0 ms)
[ RUN      ] MyEnvironment.test2
单元测试2
[       OK ] MyEnvironment.test2 (0 ms)
[----------] 2 tests from MyEnvironment (1 ms total)

[----------] 2 tests from MapTest
[ RUN      ] MapTest.test1
[       OK ] MapTest.test1 (0 ms)
[ RUN      ] MapTest.test2
global.cc:53: Failure
Expected equality of these values:
  mymap.size()
    Which is: 1
  2
[  FAILED  ] MapTest.test2 (0 ms)
[----------] 2 tests from MapTest (0 ms total)

[----------] Global test environment tear-down
单元测试执行后的环境清理

单元测试执行后的环境清理

[==========] 4 tests from 2 test suites ran. (1 ms total)
[  PASSED  ] 3 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] MapTest.test2

 1 FAILED TEST
相关推荐
小二·6 天前
Go 语言系统编程与云原生开发实战(第18篇)
云原生·golang·log4j
cm_chenmin7 天前
Cursor最佳实践之二:提问技巧
数据库·log4j
♡喜欢做梦7 天前
Spring Boot 日志实战:级别、持久化与 SLF4J 配置全指南
java·spring boot·后端·spring·java-ee·log4j
菩提小狗9 天前
第17天:信息打点-语言框架&开发组件&FastJson&Shiro&Log4j_笔记|小迪安全2023-2024|web安全|渗透测试|
笔记·安全·log4j
清水白石0089 天前
测试金字塔实战:单元测试、集成测试与E2E测试的边界与平衡
python·单元测试·log4j·集成测试
七夜zippoe11 天前
集成测试实战:构建可靠的测试金字塔体系
python·log4j·e2e·fastapi·持续集成·flask api
亓才孓12 天前
[SpringBoot]@SpringBootTest标签作用
java·spring boot·log4j
介一安全13 天前
BurpSuite 插件 Log4j2Scan 使用和手动验证
测试工具·log4j·安全性测试
廋到被风吹走15 天前
SOLID原则深度解析:面向对象设计的五大基石
java·log4j
xEurCjvwu15 天前
DSP28335锁相环程序,STM32F407锁相环程序 锁住正弦波,输出相位可调的方波和sp...
log4j