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
相关推荐
子春一11 小时前
Flutter 测试体系全栈指南:从单元测试到 E2E,打造零缺陷交付流水线
flutter·单元测试·log4j
测试人社区—527211 小时前
你的单元测试真的“单元”吗?
前端·人工智能·git·测试工具·单元测试·自动化·log4j
jiayong231 天前
Spring IOC 与 AOP 核心原理深度解析
java·spring·log4j
谷粒.2 天前
让缺陷描述更有价值:测试报告编写规范的精髓
java·网络·python·单元测试·自动化·log4j
雨中散步撒哈拉3 天前
21、做中学 | 高一上期 |Golang单元测试
golang·单元测试·log4j
h***93663 天前
SpringBoot Test详解
spring boot·后端·log4j
ChrisitineTX4 天前
双 11 预演:系统吞吐量跌至 0!一次由 Log4j 锁竞争引发的线程“集体猝死”
java·log4j
学网安的肆伍6 天前
【036-安全开发篇】JavaEE应用&第三方组件&Log4j日志&FastJson序列化&JNDI注入
安全·java-ee·log4j
爱学习的小可爱卢6 天前
JavaEE——Spring IoC与DI核心揭秘:从入门到精通
spring·java-ee·log4j·springioc
i***13247 天前
Spring Boot 整合 log4j2 日志配置教程
spring boot·单元测试·log4j