diff --git a/UnitTest/UnitTest.md b/UnitTest/UnitTest.md new file mode 100644 index 0000000..64f1e4b --- /dev/null +++ b/UnitTest/UnitTest.md @@ -0,0 +1,118 @@ +# 单元测试相关知识点 +## 单元测试 + +### 1.1概念 + +> 对软件中的最小可测试单元进行检查和验证 + +### 1.2单元测试创建 + +* 创建一个简单的程序 + +![](pictures\图片1.png) + +2. 创建测试程序 + + 创建项目----选择本机单元测试---配置创建 + + ![](pictures\图片2.png) + +3. 添加要测试项目 + + 右键项目---添加--现有项----添加.obj文件。 + + ![](pictures\图片3.png) + + 在测试项目的属性中(配置依赖): + + - **C/C++ → 常规 → 附加包含目录**:添加主项目的头文件路径 + - **链接器 → 输入 → 附加依赖项**:添加主项目生成的 `.lib` 文件 + +4. 添加被测项目头文件 + + 实现一个简单的测试 + ![](pictures\图片4.png) + +~~~ cpp +使用断言判断函数是否执行正确 +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 + + ![](pictures/图片7.png) + +![](pictures\图片6.png) + +需要下载支持2022的插件[下载链接](https://blog.csdn.net/2401_82413779/article/details/144130460?ops_request_misc=&request_id=&biz_id=102&utm_term=OpenCppCoverage.exe%E5%9C%A8%20vs%E4%B8%AD%E4%BD%BF%E7%94%A8&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-144130460.142^v102^pc_search_result_base1&spm=1018.2226.3001.4187) + + + +### 1.4 运行性能 + +* 计算函数耗时 + + ~~~ c++ + //引入#include + + 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 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. 调用堆栈 + +* 多线程调试 + +* 内存调试 + diff --git a/UnitTest/pictures/图片1.png b/UnitTest/pictures/图片1.png new file mode 100644 index 0000000..e3ea95a Binary files /dev/null and b/UnitTest/pictures/图片1.png differ diff --git a/UnitTest/pictures/图片2.png b/UnitTest/pictures/图片2.png new file mode 100644 index 0000000..2319d9b Binary files /dev/null and b/UnitTest/pictures/图片2.png differ diff --git a/UnitTest/pictures/图片3.png b/UnitTest/pictures/图片3.png new file mode 100644 index 0000000..24e1549 Binary files /dev/null and b/UnitTest/pictures/图片3.png differ diff --git a/UnitTest/pictures/图片4.png b/UnitTest/pictures/图片4.png new file mode 100644 index 0000000..fab3b4a Binary files /dev/null and b/UnitTest/pictures/图片4.png differ diff --git a/UnitTest/pictures/图片5.png b/UnitTest/pictures/图片5.png new file mode 100644 index 0000000..03d7244 Binary files /dev/null and b/UnitTest/pictures/图片5.png differ diff --git a/UnitTest/pictures/图片6.png b/UnitTest/pictures/图片6.png new file mode 100644 index 0000000..c233be4 Binary files /dev/null and b/UnitTest/pictures/图片6.png differ diff --git a/UnitTest/pictures/图片7.png b/UnitTest/pictures/图片7.png new file mode 100644 index 0000000..907a052 Binary files /dev/null and b/UnitTest/pictures/图片7.png differ