由于自己对于某些概念的理解不是深入,这个搞了蛮久才懂如何使用,先去github下载gtest
tar -zxvf ***.tar.gz 解压
1. 使用动态库的方式
mkdir build && cd build
cmake -DBUILD_SHARED_LIBS=ON ..
make
# 生成两个动态库libgtest.so libgtest_main.so
cp -a libgtest.so libgtest_main.so /usr/lib
ldconfig # 让系统知道这两个库的存在
# 进入gtest的samples文件夹下
cd samples
g++ sample1_unittest.cc sample1.cc -lpthread -lgtest -lgtest_main
2. 使用静态库的方式
mkdir build && cd build
cmake ..
make
# 生成两个动态库libgtest.a libgtest_main.a
# 可将libgtest.a libgtest_main.a放到你的需要测试的文件夹下,方便一点
# 进入gtest的samples文件夹下
g++ sample1_unittest.cc sample1.cc -lpthread libgtest.a libgtest_main.a
3. libgtest_main的作用见下面注释
// gtest_sum.cpp
#include <iostream>
#include <gtest/gtest.h>
int sum(int a, int b) {
return a+b;
}
TEST(sum, testSum) {
EXPECT_EQ(5, sum(2, 3)); // 求合2+3=5
EXPECT_NE(3, sum(3, 4)); // 求合3+4 != 3
}
// 如果在此处不写main函数,那么在链接库的时候还需要链接-lgtest_main, 否则只需链接-lgtest即可。
#if 0
int main(int argc, char **argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
#endif


8336

被折叠的 条评论
为什么被折叠?



