作为iOS开发者,测试是你的必修课:让我教教你iOS系统如何做测试(2)

发表于:2016-11-09来源:简述作者:庸者的救赎点击数: 标签:
setUP() - 在测试代码运行前调用 tearDown() - 在测试代码运行结束后调用 而且,在测试代码中, 测试方法 一定要使用test开头来命名方法名,不然无法单独运行该

  • setUP() -> 在测试代码运行前调用
  • tearDown() -> 在测试代码运行结束后调用

而且,在测试代码中,测试方法一定要使用test开头来命名方法名,不然无法单独运行该测试方法,后面会讲如何单独运行测试方法

如何测试?

UI Tests

UI Tests就是拿来做UI测试的(呃...这么解释似乎有点儿2)

而且使用方法相对比较简单,方法如下图:


执行UI Test

在点击开始Record UI Test按钮以后,Xcode会运行模拟器来启动你的APP,接下来你在APP所有的操作都会被记录下来,同时Xcode会在UI Tests相对应的Test Case文件里面生成对应的代码,所有的操作完成以后,再次点击Record UI Test按钮(其实这时候已经变成Stop状态)来完成记录

Case:

假如你有这样一个登录界面


登录界面

当你的所有代码写完以后,你想测试一下你的帐号验证做的是否全面,比如检测汉字,验证手机号的合法性,以及检测出错误以后,提示信息是否正确显示等等...

那么这个时候你就可以使用UI Tests来做这个事情,而且效率很高当你记录完以后,你的Test Case里面会生成一段代码:

let elementsQuery = XCUIApplication().otherElements.containing(.staticText, identifier:"帐号")
let textField = elementsQuery.children(matching: .textField).matching(identifier: "输入数字").element(boundBy: 0)
textField.tap()
textField.typeText("1xxxxx")

let textField2 = elementsQuery.children(matching: .textField).matching(identifier: "输入数字").element(boundBy: 1)
textField2.typeText("xx")
textField2.tap()
textField2.tap()
textField2.typeText("123456")

上面这段代码中的typeText参数你是可以手动修改的,改完以后直接Command + U可以直接运行测试,然后Xcode会自动测试你修改过的内容;这些代码完全可以自己手写进去,然后直接执行UI测试,如果你开始的时候不熟悉相关的代码,你可以先让系统生成,然后去修改,慢慢的你就会成为老司机的,发车那是小Case

有时候你可能只想运行某条单个测试,而不是Command + U运行当前Test Case所有的测试方法,你可以通过点击跟测试方法名同行位于右侧的小按钮来运行那一条测试:


执行单条测试

已经通过的测试,按钮会编程一个绿色的对号,表示已经通过测试

还未运行的是一个灰色的菱形

Unit Tests

在开发中,UI Test只能去测试界面跳转以及输入反馈等一些界面性的测试.然而,事实上我们还需要去测试,诸如方法已经网络交互等.

这个时候我可以脑补,很多同学的各种NSLog()Print()代码,其实不需要这么麻烦,我们可以通过Unit Test代码来完成这些工作;

Case:

我们在上面的界面里面输入帐号和密码,然后去验证帐号和密码的合法性等工作完成后,通常就会向服务器发起登录请求,不管登录成功与否,服务那边都会返回一些数据;比如成功后返回一个Success,失败返回一个Failure

func 



           

原文转自:http://www.jianshu.com/p/2143182b9948