
C++ 框架测试和调试资源汇总
单元测试
-
Google Test: 广泛使用的开放源码单测框架,提供断言宏、测试夹具和报告功能。
#include
TEST(CalculatorTest, Add) { Calculator calc; EXPECT_EQ(calc.Add(1, 2), 3); } - Boost.Test: 另一个广泛使用的开源单元测试框架,提供众多的断言、测试夹具和扩展功能。
集成测试
立即学习“C++免费学习笔记(深入)”;
-
Catch2: 现代化单测和集成测试框架,注重简洁性和易用性。
#include
SCENARIO("Calculator integration test") { Calculator calc; GIVEN("Initialized calculator") { WHEN("Adding 1 and 2") { int result = calc.Add(1, 2); THEN("Result should be 3") { REQUIRE(result == 3); } } } } - Google Mock: 强大的模拟框架,允许模拟函数和类以进行单元和集成测试。
调试工具
-
gdb: 强大的基于命令行的调试器,提供逐步执行、设置断点和检查内存和寄存器值的功能。
(gdb) break main.cpp:10 (gdb) run (gdb) print i
- Visual Studio Debugger: Microsoft 提供的图形化调试器,提供逐步执行、断点设置和可视化内存视图。
实战案例
考虑一个计算器类,需要对其进行测试:
Calculator.h
class Calculator {
public:
int Add(int a, int b) { return a + b; }
};Calculator_test.cpp
#include "Calculator.h" #includeTEST(CalculatorTest, Add) { Calculator calc; EXPECT_EQ(calc.Add(1, 2), 3); }
编译并运行测试:
g++ -I/path/to/gtest/include -o Calculator_test Calculator.cpp Calculator_test.cpp ./Calculator_test
执行测试后,将生成一个测试报告,显示通过或失败的测试。











