DropBear
要求
即将推出
安装
注意:有关安装 DropBearGen
或 DropBearSupport
的信息,请查看它们各自的 README
。
使用 CocoaPods
只需将以下行添加到您的 Podfile 中的 UI Test 目标
pod 'DropBear'
机器人
即将推出
断言系统
DropBear的断言系统可以作为当前 XCUI 测试能力的扩展使用,或者可以与上述所示的DropBear的机器人模式结合。
当与DropBear的机器人模式一起使用时,断言也变得可链式操作,让您在编写测试时拥有清晰简洁的阅读性,而不会失去你的位置。
为了更好地突出断言系统的功能,我们将其分为两部分。
断言
空
.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"))