iOS 测试 [Google EarlGrey] 0x01 第一个测试用例
本帖最后由 八戒你干嘛 于 2017-8-8 10:35 编辑Google EarlGrey学习笔记:
iOS 测试 0x00 安装及运行
安装成功EarlGrey后,下面来配置并编写第一个测试用例。安装步骤见 0x00 安装及运行
测试配置对被测应用安装完成EarlGrey支持后,确保Test Target设置正确能够启动相应的被测应用。
1 General标签
[*]Host Application应该被设置成被测应用http://img1.tbcdn.cn/L1/461/1/bd4f98b4dcb0e39b7d500c605905287ae767e776.png
2 Build Settings标签
[*]Test Host指向被测应用http://img3.tbcdn.cn/L1/461/1/c5b10dd23dd351b061b2849f9f82067d7a0862a2.png
[*]Bundle Loader设置成Test Host的地址http://img4.tbcdn.cn/L1/461/1/c53698d51515b565cfeae74a4478e200875cf9ee.png
[*]Wrapper Extension 设置成xctesthttp://img4.tbcdn.cn/L1/461/1/4c11983b50341d4880c53b198b6dc26c8fb5946a.png
3 添加copy files
为被测应用的Test Target添加EarlGrey框架。一般pod install之后会自动生成,如果手动添加则点击Test Target > Build Phases > + > New Copy Files Phase,安装如下方式添加
Destination: `Absolute Path`
Path: `$(TEST_HOST)/..`
Copy files only when installing: Deselect
Name: `Path to EarlGrey.Framework` with `Code Sign on Copy` selected.
显示如下:
http://img4.tbcdn.cn/L1/461/1/75a0124bfd3aaa9959e485775cae47c6d79e94e7.png
按照上述步骤设置完成后,就可以通过Xcode的Test Navigator来添加并执行测试用例了。
http://img3.tbcdn.cn/L1/461/1/7092c3ef1e2deb926e1f3ab2fd9bd181008aeb9e.png
配置并运行第一个测试用例因为EarlGrey是基于XCTest,通过新建一个Unit Test Case Class即可创建测试用例。不要创建UI Test Case Class。UI Test Case Class使用了新的XCTest特性,目前和EarlGrey不兼容。
1 创建Unit Test Case Class
右键源文件夹,选择New file...,选择Unit Test Case Class
http://img2.tbcdn.cn/L1/461/1/9dd80156f79411f23138b736f28d91440a12ff64.png
2 输入测试用例名称
选择Unit Test Case Class后,点击Next,输入测试用例名称
http://img2.tbcdn.cn/L1/461/1/44d98df54c574926fb6a043b6164d4e36894cceb.png
3 确保Targets为Test Target
保存文件时,选择之前创建的Test Target名称
http://img2.tbcdn.cn/L1/461/1/3ba37ada89b4a6cb3914d126d07df6bd0296f2df.png
4 删除无用代码
Xcode会自动生成测试用例的代码,删除不需要使用的代码。使代码保留一个测试方法并且包含了EarlGrey框架即可
@import EarlGrey;#import <XCTest/XCTest.h>@interface MyFirstEarlGaryTest : XCTestCase@end@implementation MyFirstEarlGaryTest- (void)testExample { // Use XCTAssert and related functions to verify your tests produce the correct results.}@end5 编写断言
编写一个简单的断言,判断key window(key window用来接收键盘以及非触摸类的消息,程序中只能有一个keyWindows)是否显示,代码如下
@import EarlGrey;#import <XCTest/XCTest.h>@interface MyFirstEarlGaryTest : XCTestCase@end@implementation MyFirstEarlGaryTest- (void)testPresenceOfKeyWindow { [ assertWithMatcher:grey_sufficientlyVisible()];}@end6 执行测试用例
编写完成后,执行测试用例。测试用例会在Test Navigator中显示,可以右键选中单个测试用例进行执行。跟一般的单元测试一致。你可以在你的测试代码或者应用代码中设置断点。
http://img4.tbcdn.cn/L1/461/1/452f8c1884bcbd0cc918fa9d6f7d97a676d4917c.png
执行过程
http://img3.tbcdn.cn/L1/461/1/edc6c41f549155fddbd5df1e73dc404b04973d7c.png
执行结果
http://img2.tbcdn.cn/L1/461/1/3f244bddd72e0725ab8b88360b286c4f1491433b.png
我想默默问一句 只有我一个人这里有问题吗
这个包不能导入啊
页:
[1]