Przeglądaj źródła

add_UnitTest_learn

master
wangxinyu 1 tydzień temu
rodzic
commit
7ad252744b
8 zmienionych plików z 118 dodań i 0 usunięć
  1. +118
    -0
      UnitTest/UnitTest.md
  2. BIN
      UnitTest/pictures/图片1.png
  3. BIN
      UnitTest/pictures/图片2.png
  4. BIN
      UnitTest/pictures/图片3.png
  5. BIN
      UnitTest/pictures/图片4.png
  6. BIN
      UnitTest/pictures/图片5.png
  7. BIN
      UnitTest/pictures/图片6.png
  8. BIN
      UnitTest/pictures/图片7.png

+ 118
- 0
UnitTest/UnitTest.md Wyświetl plik

@@ -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 <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. 调用堆栈

* 多线程调试

* 内存调试


BIN
UnitTest/pictures/图片1.png Wyświetl plik

Przed Po
Szerokość: 523  |  Wysokość: 362  |  Rozmiar: 23 KiB

BIN
UnitTest/pictures/图片2.png Wyświetl plik

Przed Po
Szerokość: 1318  |  Wysokość: 757  |  Rozmiar: 91 KiB

BIN
UnitTest/pictures/图片3.png Wyświetl plik

Przed Po
Szerokość: 946  |  Wysokość: 711  |  Rozmiar: 111 KiB

BIN
UnitTest/pictures/图片4.png Wyświetl plik

Przed Po
Szerokość: 1381  |  Wysokość: 600  |  Rozmiar: 99 KiB

BIN
UnitTest/pictures/图片5.png Wyświetl plik

Przed Po
Szerokość: 759  |  Wysokość: 570  |  Rozmiar: 36 KiB

BIN
UnitTest/pictures/图片6.png Wyświetl plik

Przed Po
Szerokość: 1918  |  Wysokość: 1078  |  Rozmiar: 201 KiB

BIN
UnitTest/pictures/图片7.png Wyświetl plik

Przed Po
Szerokość: 756  |  Wysokość: 558  |  Rozmiar: 28 KiB

Ładowanie…
Anuluj
Zapisz