googleTest demo
googletest的目录在的官方目录在https://github.com/google/googletest.git。
作为用户,googleTest的库可以认为提供了两个东西,头文件和库:
- 头文件中有各种宏。如TEST, TEST_F,通过
#include "gtest/gtest.h",即可使用。具体宏的意义,使用的时候去找说明书即可。 - 库关注两个库:gtest_main和gtest。gtest_main的库
libgtest_main.a,即提供了一个主函数,主函数中调用RUN_ALL_TESTS()这个接口。静态库中只有一个object,gtest_main.cc.o。真正干活的库是gtest.a, 里面暴露了testing::UnitTest::GetInstance()为RUN_ALL_TESTS提供获取测试对象集合的操作,testing::UnitTest::Run()运行的操作。用readelf -Wr lib/libgtest.a命令可以看其中包含的符号(readelf可以遍历archive文件里的object文件哦!)。libgtest_main.a依赖libgtest.a,使用时指定前者即可。
demo
a.cpp
//a.cpp
#include "gtest/gtest.h"
#include <vector>
TEST(testStack, test1) {
std::vector<int> a;
for(int i=0; i<10; i++) a.push_back(i);
EXPECT_EQ(a.size(), 10);
}
将googletest的库git clone到测试的目录下,创建如下CMakeLists.txt文件,可以完成测试的构建。
project(testVector)
cmake_minimum_required(VERSION 3.15)
add_subdirectory(googletest)
add_executable(testVector a.cpp)
target_link_libraries(testVector gtest_main)

浙公网安备 33010602011771号