一 :前言
此篇文章是我自己探索来的,查看了很多前人写的文章,也看了很多 demo,稍微对此有了一些了解,所以就在此记录一下,此中肯定会有很多不足,请诸位精通单元测试的大佬给予支出,非常感谢
环境
Xcode 13.1
二:简介
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如 C 语言中单元指一个函数,Java 里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
三: 为什么需要使用 单元测试
1.0 设想你在在一个庞大的工程里面加个了 小功能 A ,按照我们前面的说法,是不是每次都要把工程跑起来,然后 去到 A 处 然后进行测试。甚至如果我们仅仅是想 测试一个 接口 返回的参数 而这个接口又需要使用到现有工程中的很多参数 等 如果使用 单元测试的话 就不用每次去 把整个工程跑起来,只需要跑你测试的部分。
2.0 我们可以使用单元测试测 某个方法的耗时和性能,单次 和 多次运行的整体对比的。当然你可以在 方法执行前 获取时间 ,方法结束 后获取时间等方式 获取时间消耗 姑且这样写 麻烦不说 但是如何 计算 CPU 占用这些消耗呢?当然我们可以使用 instrument 来做更专业的测试。 相对而言 单元测试更加便捷 和 方便使用给我们省不少事。
四:如何做单元测试
本文只介绍 Xcode 自带的 Unit Tests 和 UI Tests
4.1 在新建任何一个 工程时 很多小伙伴 对如下图 所示的 Include Tests (我记得之前是Include Unit Tests 和 Include UI Tests的,应该是 xcode 做了改动) 感到疑惑。
选择之后会,项目会生成 Tests he UITests 的文件夹以及里面的文件
当前,你也可以后续新建,或新增这种测试文件
五: 断言
说起 测试,就要先了解断言,下面列出一些常用的断言
XCTFail (format…)// 生成一个失败的测试:
XCTAssertNil (a1, format...)// 为空判断,a1 为空时通过,反之不通过;
XCTAssertNotNil (a1, format…)// 不为空判断,a1 不为空时通过,反之不通过;
XCTAssert (expression, format...)// 当 expression 求值为 TR