DropBear 0.14.1

DropBear 0.14.1

Ian Keen 维护。



DropBear 0.14.1

DropBear

要求

即将推出

安装

注意:关于安装 DropBearGenDropBearSupport 的信息,请查看各自的 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 与断言作为参数接受的另一个值进行比较。目前,可以用来验证的接受类型有 BoolDoubleIntString

注意:该断言将值比较为 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 断言会检查元素的 labelvalue 属性是否与断言传入的参数有任何匹配。唯一可接受的参数类型是 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"))