swift单元测试(三)XCTest之UI测试UITest

继上篇文章介绍了XCTest中的单元测试,这片土地主要介绍下苹果官方测试框架XCTest中的的UITest。

1、UITest简介

        UI Tests是一个自动测试UI与交互的Testing组件。UI testing允许你找到UI元素并与之交互,还能检查属性和状态.可以和单元测试一起执行. UITest使用的OC/Swift语言的自动化测试。

        可以通过编写代码、或者是记录开发者的操作过程并代码化,来实现自动点击某个按钮、视图,或者自动输入文字等功能。随着项目功能的增加,旧功能也需要重新测试,导致了大量重复工作,这些重复的工作有些是可以自动完成的,UI Tests就可以帮助解决这个问题了。

2、UITest进行UI测试

1)创建一个UI测试target

UI测试target的创建方法类似于单元测试的创建方式,也是有两种,只是选择的target类型不同

方式一:通过创建新项目时,勾选 Include UI Tests

方式二:在已存在的项目中创建,按comman+5 打开xcode的测试导航器,点击左下角的+ 按钮,然后从菜单中选择New UI Test Target…

                                               

2)如果已有target,想新建不同的测试类,按command+n 打开新建文件,选择UI Test Case Class,创建不同的UI测试文件

3)运行方式

UI测试文件的运行方式也是command+u,测试全部,或者点击类/方法的钻石标志

4)UI测试文件的使用

文件创建好后,会自动创建以下函数

从注释我们可以知道这3个函数的意思

函数 用途
setUp 

1)继承与XCTestCase 函数测试文件开始执行的时候运行 

2)setup中的XCUIApplication().launch()用于启动app

3)可以自定义一个setup函数,将launch方法调用放在自定义函数里,然后添加自己的数据加载

tearDown  继承与XCTestCase 测试函数运行完之后执行
testExample  测试的例子函数

(1)将自带的testExample删除,添加testUI,方法是空白的

(2)光标放进到这个大括号里面,看到如下图中 的小红点。点击这个录制屏幕的按钮。应用启动。我们点击项目中的按钮跳转,函数中会根据您的操作自动生成代码

(3)你可以点击该函数的钻石标志运行,会重复您刚才的操作

(4)您也可以在操作代码自动加入后,或者手写操作代码后,加入断言判断是否是您想要的结果。

5)常用基本操作

(1)点击按钮:app.buttons["登录"].tap()

(2)输入框输入文本

app.textFields["手机号"].tap()    //要先聚焦文本框,才能继续输入

app.textFields["手机号"].typeText("13038865629")

等等

 

3、代码中控件的获取方式

类似于 app.buttons["TDD驱动测试界面"] 这样的,如果我们需要人为手写操作代码,如何获取控件,可以通过button的title或者设置的identifer获取button,类似的还有app.tables, app.textFields,app.staticTexts等等.

xcode也有一个帮助工具 Accessibility Inspector 来获取控件的属性

点击中间的按钮,选中控件,可以看到控件的属性,我们一般利用其title来获取控件

到此,UITest的简单使用就介绍完了......

猜你喜欢

转载自blog.csdn.net/lin1109221208/article/details/93032230