继上篇文章介绍了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的简单使用就介绍完了......

swift单元测试(三)XCTest之UI测试UITest相关推荐

  1. iOS 单元测试和UI测试教程

    原文:iOS Unit Testing and UI Testing Tutorial 作者:Audrey Tam 译者:kmyhy 编写测试不是为了追求刺激,测试是为了避免你崭新的 App 变成了充 ...

  2. iOS单元测试和UI测试全面解析

    编写测试可不是一项迷人的工作;然而,由于测试可以避免使你的宝贝应用程序变成一块充斥错误的大垃圾场,所以编写测试又是一项非常有必要做的工作.如果你正在阅读本文,那么你应当已经知道你应该为您的代码和用户界 ...

  3. android测试篇(三)单元测试之UI测试 Espresso学习与实践

    前言 上一章并没有说仪器化测试,仪器化测试存放在src/androidTest目录中,仪器化测试即UI测试. 本文并没有多加理解,按照Android UI 测试指南之 Espresso抄袭(会标注转载 ...

  4. Android ui 单元测试 覆盖率,Android单元测试/Ui测试+JaCoCo覆盖率统计

    Android单元测试/Ui测试+JaCoCo覆盖率统计 参考资料1 参考资料2 背景说明 单元测试 从源代码着手,对源码中的最小可测试单元进行检查和验证,在对源代码有较深的理解下,编写测试单元,工作 ...

  5. iOS 单元测试和 UI 测试快速入门

    iOS 单元测试和 UI 测试快速入门 前言 平时写完业务代码的时候都会去自己测试一遍,后面每次有修改都需要重复测,不管是一个业务流程还是一个工具类,其实都可以通过测试框架来帮助我们完成测试,特别是一 ...

  6. Android Studio中进行单元测试和UI测试

    目录 在Android Studio中进行单元测试和UI测试 - 1.概述 在Android Studio中进行单元测试和UI测试 - 2.创建新的Android Studio工程 在Android ...

  7. 自动化测试系列(三)|UI测试

    UI 测试是一种测试类型,也称为用户界面测试,通过该测试,我们检查应用程序的界面是否工作正常或是否存在任何妨碍用户行为且不符合书面规格的 BUG.了解用户将如何在用户和网站之间进行交互以执行 UI 测 ...

  8. xcode swift 单元测试 test

    XCTest是苹果官方的测试框架,是基于OCUnit的传统测试框架,测试编写起来非常简单. 参考文档:iOS Unit Testing and UI Testing Tutorial | Kodeco ...

  9. 一起谈.NET技术,VS2010测试功能之旅:编码的UI测试(3)-操作对象的识别原理...

    回顾  在之前的两章分别介绍了一个简单的示例, 操作动作的录制原理,通过修改UIMap.UItest文件控制操作动作代码的生成.想必大家对编码的UI测试操作动作的录制应该有一定了解了,在UI操作中,操 ...

最新文章

  1. (vue基础试炼_08)Vue模板语法
  2. python多线程同步
  3. flask v0.1 执行流程 Flask(__name__)
  4. 我如何不再是一个可怕的“10 倍经理”?
  5. center os php,Center OS 7 Apache安装配置
  6. STM32的Bootloader实现
  7. Xcode6 - 更改项目Copyright
  8. 磁盘空间未释放异常案例
  9. CentOS上安装多版本Python问题
  10. Qt调用ffmpeg录制屏幕
  11. android horizontalscrollview顶部导航,带有居中效果的HorizontalScrollView使用说明
  12. ROS与Arduino:ros_arduino_bridge功能包的使用解读
  13. 广电CMMB拒考手机电视国标 新面孔IMMB欲分羹
  14. intel收购Altera
  15. 流媒体有哪些播放方式?流媒体视频三种播放方式介绍
  16. Excel中用REPT函数制作图表
  17. Python升级之路( Lv9 ) 文件操作
  18. 计算机怎么没有word文档,word没了怎么回事 为什么电脑没有了word
  19. 清华计算机系科学博士毕业论文要求,博士可以不发SCI毕业?清华取消博士论文发表强制要求...
  20. WordPress关注微信公众号回复可见和阅读更多的方法

热门文章

  1. Adobe Bridge CC 2020中文版
  2. 聚焦SSD:各固态硬盘厂商主控芯片选择
  3. Android视频录制--屏幕录制
  4. 什么是隧道?| 网络中的隧道
  5. 定义一个函数,统计输入的一串字符包含多少个数字,多少个英文字母,多少个空白字符,多少个其他字符(Python经典编程案例)
  6. [ffmpeg]显示视频尺寸
  7. Linux查看脚本的编码格式,从windows到linux的shell脚本编码和格式问题
  8. ACL的概述以及命令应用
  9. Android查看、修改KeyAlias
  10. 建立一个GTalk连接和启动一个IM会话