首页 > 文章列表 > C++ 框架测试和调试资源汇总

C++ 框架测试和调试资源汇总

框架 测试 调试 c++
145 2024-09-02

C++ 框架测试和调试资源汇总

C++ 框架测试和调试资源汇总

单元测试

  • Google Test: 广泛使用的开放源码单测框架,提供断言宏、测试夹具和报告功能。

    #include <gtest/gtest.h>
    
    TEST(CalculatorTest, Add) {
    Calculator calc;
    EXPECT_EQ(calc.Add(1, 2), 3);
    }
  • Boost.Test: 另一个广泛使用的开源单元测试框架,提供众多的断言、测试夹具和扩展功能。

集成测试

  • Catch2: 现代化单测和集成测试框架,注重简洁性和易用性。

    #include <catch2/catch.hpp>
    
    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"
#include <gtest/gtest.h>

TEST(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

执行测试后,将生成一个测试报告,显示通过或失败的测试。