iOS精品文章-单元测试

翻译:使用Xcode测试(八)——用户界面测试(User Int

2016-09-17  本文已影响164人  栗子烤肉

UI测试可以找到应用UI并与之交互,以验证UI元素的属性和状态。

UI测试包括UI录制,它可以生成代码测试应用UI。UI录制是编写UI测试快速入门的好方法。

测试报告提供了关于UI测试的详细信息,包括测试失败时UI状态的快照。

UI取决于两大核心技术:XCTest框架和可访问性。

在源代码中创建UI测试与创建单元测试类似。为应用创建一个UI测试target,然后Xcode创建一个默认UI测试组合实现文件,在实现文件中有测试方法模版例子。当你创建UI测试target,可以指定测试哪个app。

用户测试通过寻找应用的UI对象,合成事件并将他们发送到这些对象,并提供丰富的API使你可以检查UI对象的属性和状态,并与预期状态对比。

要求

UI测试取决于开发工具和OS平台的服务和API。你需要Xcode7, OS X 10.11 EI Capitan和iOS 9 (或更新版本)。UI测试保护隐私:

iOS设备需要启用开发并连接到一个受信的主机。OS X需要给予特殊Xcode助手应用权限(在第一次自动提示)。

概念和API

UI测试与单元测试在本质上不同。单元测试让你能够在应用范围内测试功能和方法,充分访问应用的变量和状态。UI测试以相同方式测试应用UI,用户不需要访问应用的内部方法、函数和变量。这使你的测试与用户相同的方式使用应用,暴露用户在使用过程中遇到的UI问题。

测试代码作为一个单独的进程,合成应用中UI事件。

APIs

UI测试基于以下三个类实现:

开始使用UI录制

从UI录制开始。它生成源代码到测试的实现文件中,可以编辑修改以构建测试或回访一个特定使用场景。UI录制也有助于探索新UI货学习如何编写UI测试序列。操作的基本顺序是:

  1. 使用测试导航,创建UI测试目标。
  2. 在创建的模板文件中,将光标放置到测试函数中。
  3. 开始UI录制。
  4. 启动和运行应用。做一系列的UI动作测试应用。Xcode捕获操作并生成函数的源代码。
  5. 当你完成测试操作时,停止UI录制。
  6. 添加XCTest断言源代码。

编写UI测试

API测试有功能和性能测试,也可以进行UI测试。UI测试操作app界面并集成大量低层次功能响应UI。

UI测试从根本上操作事件及响应。

使用XCTest创建UI测试与创建单元测试类似。在整体上操作和编程方法是类似的,不同的是UI测试的基本概念以及如何操作UI测试。详见用户界面测试( User Interface Testing)。

在测试类结构中,所提供的setup方法与单元测试类中的setup方法有两个不同。

<pre><code>
-(void)setUp {

[super setUp];



// Put setup code here. This method is called before the invocation of each test 

method in the class.

self.continueAfterFailure = NO;

[[[XCUIApplication alloc] init] launch];

}
</pre></code>

默认设置self.continueAfterFailure的值为NO。这通常是正确的配置,因为在一个UI测试方法中每一步往往取决于前面的成功,如果前面一个步骤失败,则后续所有测试也是失败的。

setup方法包括创建XCUIApplication实例并启动它。UI测试必须启动测试的应用,因为setup在每个测试方法前运行,这确保应用中的每个测试方法都启动。

当编写UI测试方法,你应该使用UI录制功能创建测试的基本步骤。然后编辑你想要的顺序,使用XCTest断言提供成功或失败结果。UI测试有功能和性能测试,就像单元测试一样。

UI测试一般模式是:

构建性能UI测试,包装一系列可重复UI步骤到measureBlock结构,参见编写性能测试( Writing Performance Tests)。

官方原文地址:

https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/09-ui_testing.html#//apple_ref/doc/uid/TP40014132-CH13-SW1

上一篇 下一篇

猜你喜欢

热点阅读