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
相关推荐
__zRainy__3 天前
Node系列 · ORM:log4js 日志记录
node.js·log4j
李昊哲小课3 天前
Spring Boot 4 旅游主题实战教程 阶段四:缓存与底层进阶
spring boot·redis·缓存·性能优化·log4j·旅游·性能
李昊哲小课4 天前
SpringBoot4 云端咖啡站 阶段五:交付与进阶
人工智能·spring boot·大模型·log4j·智能体
码匠许师傅4 天前
【设计模式精讲】2. 设计原则基石:SOLID 与几条关键原则
java·设计模式·log4j
帅哥的AI自修课4 天前
LangGraph Send:你还在循环里硬调节点?Send 焊死「动态并发路由」,从单播广播到 Map-Reduce 一篇打通
log4j
鲨鱼辣钊6 天前
Github Copilot 研发效能提升实战指南
log4j·github·copilot
深维AI随笔10 天前
《构建之法》| 第二章个人技术和流程:单元测试不是“可选“,而是“必需“
单元测试·log4j·apache
七牛开发者14 天前
为什么 Go 很适合 AI 辅助开发?
数据库·人工智能·python·elasticsearch·log4j
IT机器猫15 天前
RabbitMQ基础二
java·spring boot·分布式·spring cloud·log4j·rabbitmq·springamqp
看浪的路人18 天前
第6讲:单元测试自动生成
python·ai·log4j