setUP()
-> 在测试代码运行前调用tearDown()
-> 在测试代码运行结束后调用而且,在测试代码中,测试方法一定要使用test开头来命名方法名,不然无法单独运行该测试方法,后面会讲如何单独运行测试方法
UI Tests
就是拿来做UI测试
的(呃...这么解释似乎有点儿2)
而且使用方法相对比较简单,方法如下图:
在点击开始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
所有的测试方法,你可以通过点击跟测试方法名同行位于右侧的小按钮来运行那一条测试:
已经通过的测试,按钮会编程一个绿色的对号,表示已经通过测试
还未运行的是一个灰色的菱形
在开发中,UI Test
只能去测试界面跳转以及输入反馈等一些界面性的测试.然而,事实上我们还需要去测试,诸如方法已经网络交互等.
这个时候我可以脑补,很多同学的各种NSLog()
和Print()
代码,其实不需要这么麻烦,我们可以通过Unit Test
代码来完成这些工作;
Case:
我们在上面的界面里面输入帐号和密码,然后去验证帐号和密码的合法性等工作完成后,通常就会向服务器发起登录请求,不管登录成功与否,服务那边都会返回一些数据;比如成功后返回一个Success
,失败返回一个Failure
func
原文转自:http://www.jianshu.com/p/2143182b9948