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
相关推荐
小肖爱笑不爱笑1 天前
Maven
java·log4j·maven
垚森4 天前
【问题解决】关于log4j与logback依赖冲突的解决方案
log4j·logback·问题解决·依赖冲突
GA6666664 天前
2026 年自托管 Wiki 推荐:为什么选择 PowerWiki
人工智能·log4j·blog·wiki
cike_y6 天前
Mybatis之分页的实现&日志工厂&Log4j详解
数据库·log4j·mybatis
Lisonseekpan7 天前
RBAC 基于角色的访问控制模型详解与实践指南
java·服务器·网络·后端·spring·log4j
川石课堂软件测试7 天前
软件测试的白盒测试(二)之单元测试环境
开发语言·数据库·redis·功能测试·缓存·单元测试·log4j
Lisonseekpan8 天前
Spring Boot Email 邮件发送完全指南
java·spring boot·后端·log4j
许泽宇的技术分享11 天前
AgentFramework:测试方法
log4j
墨痕诉清风13 天前
java漏洞集合工具(Struts2、Fastjson、Weblogic(xml)、Shiro、Log4j、Jboss、SpringCloud)
xml·java·struts·安全·web安全·spring cloud·log4j
Lisonseekpan13 天前
为什么Spring 推荐使用构造器注入而非@Autowired字段注入?
java·后端·spring·log4j