下载安装gtest
git clone https://github.com/google/googletest.git
cd googletest
mkdir build
cmake ..
make -4
sudo make install
测试例子1(源代码来自这里)
#include <gtest/gtest.h>
#include <iostream>
int test_fun(int a) {
return a + 1;
}
// 单元测试
TEST(FunTest, HandlesZeroInput) {
EXPECT_EQ(1, test_fun(0));
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
CMakeList.txt(可以再clion下使用)
cmake_minimum_required(VERSION 2.10)
project(test)
set(CMAKE_CXX_STANDARD 11)
add_executable(test test.cc)
target_link_libraries(test gtest pthread)
(手动编译)
mkdir build
cmake ..
make -j4
测试例子2
//
// Created by liushuai on 18-8-16.
//
#include<iostream>
using namespace std;
#include<gtest/gtest.h>
int Abs(int x)
{
return x > 0 ? x : -x;
}
TEST(IsAbsTest,HandlerTrueReturn)
{
ASSERT_TRUE(Abs(1) == 1) << "Abs(1)=1"; //ASSERT_TRUE期待结果是true,operator<<输出一些自定义的信息
ASSERT_TRUE(Abs(-1) == 1) << "Abs(-1)=1";
ASSERT_FALSE(Abs(-2) == -2); //期待结果是false
ASSERT_EQ(Abs(1),Abs(-1));
ASSERT_NE(Abs(-1),0);
ASSERT_LT(Abs(-1),2);
ASSERT_GT(Abs(-1),0);
ASSERT_LE(Abs(-1),2);
ASSERT_GE(Abs(-1),0);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
cmake文件
cmake_minimum_required(VERSION 3.10)
project(ex12)
set(CMAKE_CXX_STANDARD 11)
find_library(Gtest libgtest.a /usr/local/lib)
add_executable(ex12 test2.cc )
target_link_libraries(ex12 ${Gtest} pthread)
测试运行结果如下: