DropBearSupport 0.14.1

DropBearSupport 0.14.1

Ian Keen 维护。



DropBear

要求

即将推出

安装

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