测试

许多开发者会使用 puppeteer 去进行自动化的 UI 测试。然而 puppeteer 仅仅是一个用于控制 Chromium 的软件,它不可能提供断言方法让您用于测试。

Rize 提供了很多有用的断言方法用于测试。Rize 仅仅是一个库并且使用了 Node.js 的 assert 模块,所以您可以将它和任何您喜欢的测试框架一起使用。

断言页面信息

您可能想断言当前页面的 URL,那么您可以使用 assertUrlIs 方法:

rize.assertUrlIs('https://example.com/')

如果您想检查 URL 是否匹配指定的正则表达式,可以使用 assertUrlMatch 方法:

rize.assertUrlMatch(/^https?/)

您也可以断言 query string。只需使用 assertQueryStringHas 方法:

rize.assertQueryStringHas('key')

您可能还想检查 query string 上的值,而不仅仅是键:

rize.assertQueryStringHas('key', 'value')

上面的断言表示检查 query string 中 key 对应的值。如果实际的值与给定的不同,测试将不能通过。

您甚至可以断言 query string 不存在指定的键:

rize.assertQueryStringMissing('nope')

另外,如果您想断言 cookies 您可以使用 assertCookieHas 方法。

断言页面内容和元素

页面

您可以用 assertTitle 方法或 assertTitleContains 方法断言当前页面的标题。

rize.assertTitle('page title')
rize.assertTitleContains('title')

如果您想检查当前页面是否包含指定的文本,可以使用 assertSee 方法。

rize.assertSee('something')

您也可以使用 assertSeeIn 方法来断言某些文本是否存在某个元素中,您只需要给出该元素的选择器。

rize.assertSeeIn('#greeting', 'Hello!')

您还可以使用 assertDontSeeassertDontSeeIn 方法来断言指定的文本是否不存在于页面或某个元素中。

元素

您可以断言某个元素的状态:

rize.assertElementPresent('div')
rize.assertElementMissing('div')
rize.assertElementVisible('div')
rize.assertElementHidden('div')

可以检查某个元素是否包含指定的 class:

rize.assertClassHas('#greeting', 'pull-right')

或不存在某个 class:

rize.assertClassMissing('#greeting', 'pull-left')

您可以断言某个复选框或某个单选框或某个下拉菜单的状态:

rize.assertChecked('input[type=checkbox]')
rize.assertNotChecked('input[type=checkbox]')
rize.assertRadioSelected('input[type=radio]', 'south')
rize.assertRadioNotSelected('input[type=radio]', 'north')

也可以使用 assertValueIs 方法或 assertValueIsNot 方法来断言它的值。

全部的 API

所有的断言方法都在这里列出,它们都以 assert 开头。