DropBear
要求
即将推出
安装
注意:关于安装 DropBearGen 或 DropBearSupport 的信息,请查看各自的 README。
使用 CocoaPods
只需将以下行添加到您的 Podfile 中的 UI 测试 目标中。
pod 'DropBear'机器人
即将推出
断言系统
DropBear的断言系统既可以作为当前XCUI测试能力的扩展,也可以搭配DropBear的Robot模式,如上图所示。
当与DropBear的Robot模式一起使用时,断言也变得可链式,在编写测试时既保持了简洁性,又不会失去定位。
为了更好地突出断言系统的特点,我们将其分为两部分。
断言
空
`.empty` 断言用于检查基于 String 的值是否为空。如果 UITextField 的 `placeholder` 值与 UITextField 的当前值匹配,它也将返回 `true`。
示例用法
FooRobot()
.assert(.fooTextField, .empty)启用的
.enabled 断言是对 element.isEnabled 的简单封装,可以与任何元素类型一起使用。
示例用法
FooRobot()
.assert(.fooButton, .enabled)等于
.equal 断言会将元素的 value 与断言作为参数接受的另一个值进行比较。目前,可以用来验证的接受类型有 Bool、Double、Int 和 String。
注意:该断言将值比较为 lowercase,这使得该断言不区分大小写。
示例用法
FooRobot()
.assert(.fooTextField, .equal(to: "Hello, world!"))存在
.exists 断言会检查指定元素是否存在。默认情况下,使用此断言将等待元素存在5秒,在此之后,如果该元素不存在,则测试将失败。
如果您想覆盖测试等待元素存在的时间,DropBear还提供了实现该功能的机制。
示例用法
FooRobot()
.assert(.fooTextField, .exists) // Will wait for up to 5 seconds for existence或
FooRobot()
.assert(.fooTextField, .exists(waiting: 10)) // Will wait for up to 10 seconds for existence包含
.contains 断言会检查元素的 label 和 value 属性是否与断言传入的参数有任何匹配。唯一可接受的参数类型是 String。
假设我们的示例 UITextField 的值为 Hello, world!,以下示例用法将断言为 true。
示例用法
FooRobot()
.assert(.fooTextField, .contains("world"))操作符
DropBear的断言系统还提供了一些操作符以简化测试编写。
!
! 操作符是一个接收断言作为唯一未命名参数的方法。该操作符反转所接受断言的结果,为您提供类似 not 的结果。
FooRobot()
.assert(.fooTextField, !(.exists))&&
&& 操作符评估两个或多个断言结果,并且只有当所有结果都为 true 时才断言 true。
FooRobot()
.assert(.fooTextField, .exists && .contains("world"))||
|| 操作符评估两个或多个断言结果,并且如果任何结果为 true,则断言 true。
FooRobot()
.assert(.fooTextField, .exists || .contains("world"))