googleTest demo

googletest的目录在的官方目录在https://github.com/google/googletest.git。

作为用户,googleTest的库可以认为提供了两个东西,头文件和库:

  1. 头文件中有各种宏。如TEST, TEST_F,通过#include "gtest/gtest.h",即可使用。具体宏的意义,使用的时候去找说明书即可。
  2. 库关注两个库: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)
posted @ 2023-04-16 11:04  zwlwf  阅读(35)  评论(0)    收藏  举报