iOS单元测试

我们经常说模块拆分与封装可以降低耦合,而低耦合的业务逻辑能够方便单元测试,那么什么在iOS开发中我们怎样进行单元测试呢?首先我们需要了解单元测试的概念

单元测试

单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块的最小单位来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法

TestDemoTests与TestDemoUITests

在iOS开发中,Xcode已经集成单元测试的功能,当我们新建文件的时候,除了项目文件夹之外还会有TestDemoTestsTestDemoUITests两个文件夹,这两个文件夹包含的内容分别为方法测试与UI测试

png1

打开其中的TestDemoTests文件夹,点开TestDemoTests.m类,会有以下四个方法:

png2

测试

要进行测试,我们需要有被测试的方法,这里我们新建一个类ValidManager,里面包含有判断输入是否为手机号的方法

png3

我们测试这个方法就需要在TestDemoTests创建测试类(也可以使用初始的模板),这个类继承于XCTestCase:

png4

然后导入需要测试的类,进行初始化,添加测试方法testMobile,注意所有的方法都需要以test开头,表明这是一个测试的方法,然后添加需要的断言进行测试,因为是BOOL类型的判断,我们添加测试成功的断言XCTAssertTrue 可以进行测试的方法,左边都会有一个菱形按钮,需要测试时我们只需要点击菱形测试按钮即可,当我们需要测试的方法通过的时候,左边的菱形会变成绿色的对号,测试成功,如图:

png5

这里可以看到,我们的测试已经成功,如果测试失败,左边则会出现红色差号,并提示那个方法没有测试通过

png6

如果我们需要对一个方法进行时间的测试,则需要在testPerformanceExample方法measureBlock块中,添加需要测试的方法即可

png7

可以看到验证手机号的方法,使用了0.001秒,我们可以点开左边灰色菱形按钮

png8

这里是测试时间的一些参数,点击Edit可以修改BaseLine时间基线与MAX STDDEV最大浮动,当我们测试时间的时间,在BaseLineMAX STDDEV范围内时,测试才会有效