什么是单元测试?
一听到单元测试这个词感觉很高端,其实单元测试就是为你的方法多专门写一个测试函数。以保证你的方法在不停的修改开发中。保持正确。如果出错,第一时间让你知道,这样从最小单位开始监控来保证软件的质量。
什么时候用到单元测试:
1、写完代码以后:想要验证一下自己写的代码是否有问题。
2、写代码之前:就是写代码之前所有的功能分模块的设计好,测试通过了再写。(我反正是没用过)。
3、修复某个bug后:一般修复完某个bug,为了确保修复是成功的,会写测试。
怎么写单元测试
好像废话有点多了,还是直接奔主题吧。
创建一个工程,名字随便取,直接勾选include Unit Tests
QQ20160129-0.png
万一我忘了勾选怎么办呢?可以有其他方式创建File-->new-->target-->iOS-->iOS Unit Testing Bundle。名字自己看着办吧。
QQ20160129-1.png
工程创建好后,那要怎么开始测试呢?
找到系统单元测试Testes文件夹中.m文件看中会到看到几个方法,我们来看下这个几个方法是什么时候调用和他们各种的作用
QQ20160129-2.png
在ViewController中写一个简单的方法
实现:
在测试的文件中导入ViewController.h,并且定义一个vc属性
测试用例的实现
command+u快捷方式运行,或者produce-->test都行,
工程就跑起来了
QQ20160129-3.png
我们可以在在控制台清晰的看到我们要测试的用例子通过了,测试通过的测试方法会有绿色的钩。
这时候我们改下断言,把100随便改成一个数,120.再comand+u运行下,看下什么情况
QQ20160129-4.png
很明显是能不能通过的,因为我们要测试的方法返回值是100,
自带的测试框架还能测试某个方法的性能,
}
我们在例子中添加一个for循环,测试其性能。command+u运行就能看到如图:
QQ20160129-5.png
能够非常直观的看出其调用的时间,可以用其来对比性能的优劣。
另外XCTest还支持异步单元测试,我就不在这里展开了。最后附上常用的断言及解释。
文/杰为之冬(简书作者)