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: 12
[ 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.test21 FAILED TEST