Git实战手册:从安装配置到分支合并与冲突处理
2026/9/29 15:55:52
单元测试是C++程序员的必备技能,也是大厂面试的加分项。Google Test(gtest)作为C++最流行的测试框架,掌握它对于保证代码质量至关重要。本文将系统讲解Google Test的使用方法,帮你掌握测试驱动开发(TDD)的核心技巧。
# 下载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)// 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)