gtest全局套件的测试使用
#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;
}
运行结果:
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