☰
C++单元测试实战:Google Test从入门到精通,面试必考的测试驱动开发全解析
2026/9/29 15:15:49 网站建设 项目流程

C++单元测试实战:Google Test从入门到精通,面试必考的测试驱动开发全解析

引言

单元测试是C++程序员的必备技能,也是大厂面试的加分项。Google Test(gtest)作为C++最流行的测试框架,掌握它对于保证代码质量至关重要。本文将系统讲解Google Test的使用方法,帮你掌握测试驱动开发(TDD)的核心技巧。


一、Google Test基础

1.1 安装与配置

# 下载Google Testgitclone https://github.com/google/googletest.gitcdgoogletestmkdirbuild&&cdbuild# 编译安装cmake..-DCMAKE_INSTALL_PREFIX=/usr/localmake-j4sudomakeinstall# CMakeLists.txt配置# find_package(GTest REQUIRED)# include_directories(${GTEST_INCLUDE_DIRS})# target_link_libraries(your_test GTest::gtest GTest::gtest_main)

1.2 第一个测试

// math_utils.h#pragmaonceintadd(inta,intb);intsubtract(inta,intb);intmultiply(inta,intb);doubledivide(inta,intb);// math_utils.cpp#include"math_utils.h"#include<stdexcept>intadd(inta,intb){returna+b;}intsubtract(inta,intb){returna-b;}intmultiply(inta,intb){returna*b;}doubledivide(inta,intb){if(b==0)throwstd::invalid_argument("Division by zero");returnstatic_cast<double>(a)/b;}// math_utils_test.cpp#include<gtest/gtest.h>#include"math_utils.h"// 基本测试TEST(MathUtilsTest,AddTest){EXPECT_EQ(add(2,3),5);EXPECT_EQ(add(-1,1),0);EXPECT_EQ(add(0,0),0);}TEST(MathUtilsTest,SubtractTest){EXPECT_EQ(subtract(5,3),2);EXPECT_EQ(subtract(0,5),-5);}TEST(MathUtilsTest,MultiplyTest){EXPECT_EQ(multiply(3,4),12);EXPECT_EQ(multiply(-2,3),-6);EXPECT_EQ(multiply(0,100),0);}TEST(MathUtilsTest,DivideTest){EXPECT_DOUBLE_EQ(divide(10,2),5.0);EXPECT_DOUBLE_EQ(divide(7,2)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询