Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

2.4 KiB

单元测试相关知识点

单元测试

1.1概念

对软件中的最小可测试单元进行检查和验证

1.2单元测试创建

  • 创建一个简单的程序

  1. 创建测试程序

    创建项目----选择本机单元测试---配置创建

  2. 添加要测试项目

    右键项目---添加--现有项----添加.obj文件。

    在测试项目的属性中(配置依赖):

    • C/C++ → 常规 → 附加包含目录:添加主项目的头文件路径
    • 链接器 → 输入 → 附加依赖项:添加主项目生成的 .lib 文件
  3. 添加被测项目头文件

    实现一个简单的测试

使用断言判断函数是否执行正确
TEST_METHOD(TestMethod1)
{
	int a = 2;
	int b = 8;
	int sum = 20;
	//断言判断结果是否未为20
	Assert::AreEqual(sum, add_multiplied(a, b));
}

1.3代码覆盖度

下载使用OpenCppCoverage进行分析

插件配置

  • 添加exe文件路径

  • 添加被测工程.dll

需要下载支持2022的插件下载链接

1.4 运行性能

  • 计算函数耗时

    //引入#include <chrono> 
      
    TEST_METHOD(TestMethodPerformance)
    {
        int a = 2;
        int b = 8;
        // 记录开始时间
        auto start = std::chrono::high_resolution_clock::now();
      
        // 执行被测函数
        int result = add_multiplied(a, b);
      
        // 记录结束时间
        auto end = std::chrono::high_resolution_clock::now();
      
        // 计算时间差(以毫秒为单位)
        std::chrono::duration<double, std::milli> elapsed = end - start;
      
        // 输出执行时间(在VS的输出窗口中可见)
        Logger::WriteMessage(("Execution time: " + std::to_string(elapsed.count()) + " ms").c_str());
      
    }
    

1.5测试单元样例书写

1.6 单元测试

  1. 设置断点
  2. 启动调试
  3. 继续--单步执行--单步进入--跳出
  4. 查看数据
    1. 局部变量
    2. 监视表达式
    3. 调用堆栈
  • 多线程调试

  • 内存调试