立即学习:https://edu.csdn.net/course/play/1015/96514?utm_source=blogtoedu
### 6、单元测试的原理
+ 问题:输入一个十六进制字符串,将该字符串转成整数
+ 举例:输入"A2",则得到的整数为0xA2
+ 将十六进制字符转换成整数 unsigned char Hex2Int(char ch)
+ 将十六进制字符构成的串转换成整数 unsigned int Convert(const char* hex, int len);
+ 单元测试,Unit Test
+ 将一个大的程序划分成若干单元进行测试
+ 当代码越来越多时,将代码封装成多个函数,把每个函数作为一个单元(Unit)
+ 理论基础
+ 如果每个单元的功能都是正确的,则各个单元连在一起也是正确的
+ 反之,程序发生错误,肯定存在一个单元发生错误
+ 测试用例
+ 如何确定一个单元(函数)的功能是否正确呢?
+ 答案:充分地测试
+ 构造完整的测试用例(TestCase),确定函数在每种情况(case)下都表现正常
+ 举例:对于Hex2Int函数,让测试用例尽量覆盖所有的情形
+ | 输入 | 预期输出 | 是否通过 |
| :--: | :------: | :------: |
| '0' | 0 | Y |
| ‘9’ | 9 | Y |
| ‘a’ | 10 | N |
| 'f' | 15 | N |
| 'z' | 0 | Y |
| 'A' | 10 | Y |
| 'F' | 15 | Y |
| 'Z' | 0 | Y |
| '-' | 0 | Y |
+ 注意
+ (1)一种用例通过了,不代表函数就写对了,要测试更多的用例
+ (2)每次修改后,把单元测试用例重新全测一遍,以免你的改动产生新的问题
+ (3)最好先测试简单的函数,设置先决条件,决定测试顺序,由内而外
+ (4)当单元测试完成之后,我们就相信这个单元
+ (5)先单元测试,再集成测试(联调)