googletest简单搭建


主函数

#include "gtest/gtest.h"
#include "gmock/gmock.h"

int main(int argc, char **argv)
{
    testing::InitGoogleMock(&argc, argv);
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

主cmakelist

cmake_minimum_required(VERSION 3.15)
project(Test)

set(CMAKE_CXX_STANDARD 14)

# 添加头文件
include_directories(
        ${CMAKE_CURRENT_SOURCE_DIR}/include
        ${CMAKE_CURRENT_SOURCE_DIR}/googletest-master/googletest/include
        ${CMAKE_CURRENT_SOURCE_DIR}/googletest-master/googlemock/include
)

# 添加下级目录,生成.a文件
add_subdirectory(./googletest-master)

# 添加连接库
link_directories(
        ${CMAKE_CURRENT_SOURCE_DIR}/lib
        ${CMAKE_CURRENT_SOURCE_DIR}/googletest-master/googletest
        ${CMAKE_CURRENT_SOURCE_DIR}/googletest-master/googlemock
)

set(SOUCE_FLIES
        main.cpp
        add/add.cpp
        add/add.h
        add/add_test.cpp)

# 指定可执行文件的生成位置
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin")

add_executable(Test ${SOUCE_FLIES})

# 将目标文件与库文件进行链接
target_link_libraries(Test gtest gmock)

测试用例:

#include "add.h"
#include "gtest/gtest.h"
#include "gmock/gmock.h"


class AddTest: public testing::Test
{
public:
    virtual void SetUp()    { puts("SetUp()"); }
    virtual void TearDown() { puts("TearDown()"); }
};

TEST(AddTest,test1 ){
    ASSERT_EQ(12,add(4,8));
}

简单的测试函数

int add(int a,int b)
{
    return a+b;
}