Expect
При написании тестов часто необходимо проверять, что значения соответствуют определенным условиям. expect
предоставляет доступ к ряду "матчеров", которые позволяют проверять различные вещи в объектах browser
, element
или mock
.
Параметры по умолчанию
Эти параметры по умолчанию связаны с опциями waitforTimeout
и waitforInterval
, установленными в конфигурации.
Устанавливайте параметры ниже только в том случае, если вы хотите установить специальные тайм-ауты для ваших проверок.
{
wait: 2000, // мс ожидания успешного выполнения проверки
interval: 100, // интервал между попытками
}
Если вы хотите установить другие значения тайм-аутов и интервалов, задайте эти параметры следующим образом:
// wdio.conf.js
import { setOptions } from 'expect-webdriverio'
export const config = {
// ...
before () {
setOptions({ wait: 5000 })
},
// ...
}
Параметры матчеров
Каждый матчер может принимать несколько параметров, которые позволяют модифицировать проверку:
Параметры команды
Имя | Тип | Описание |
---|---|---|
wait | number | время в мс для ожидания успешной проверки. По умолчанию: 3000 |
interval | number | интервал между попытками. По умолчанию: 100 |
beforeAssertion | function | функция, которая будет вызвана перед проверкой |
afterAssertion | function | функция, которая будет вызвана после проверки и содержит результаты проверки |
message | string | пользовательское сообщение, которое будет добавлено перед сообщением об ошибке проверки |
Параметры для строк
Эти параметры могут применяться дополнительно к параметрам команды при проверке строк.
Имя | Тип | Описание |
---|---|---|
ignoreCase | boolean | применить toLowerCase к фактическому и ожидаемому значениям |
trim | boolean | применить trim к фактическому значению |
replace | Replacer | Replacer[] | заменить части фактического значения, которые соответствуют строке/RegExp. Replacer может быть строкой или функцией |
containing | boolean | ожидание, что фактическое значение содержит ожидаемое значение, в противном случае строгое равенство |
asString | boolean | может быть полезно для принудительного преобразования значения свойства в строку |
atStart | boolean | ожидание, что фактическое значение начинается с ожидаемого значения |
atEnd | boolean | ожидание, что фактическое значение заканчивается ожидаемым значением |
atIndex | number | ожидание, что фактическое значение имеет ожидаемое значение по указанному индексу |
Параметры для чисел
Эти параметры могут применяться дополнительно к параметрам команды при проверке чисел.
Имя | Тип | Описание |
---|---|---|
eq | number | равно |
lte | number | меньше или равно |
gte | number | больше или равно |
Обработка HTML-сущностей
HTML-сущность — это фрагмент текста ("строка"), который начинается с амперсанда (&
) и заканчивается точкой с запятой (;
). Сущности часто используются для отображения зарезервированных символов (которые иначе были бы интерпретированы как HTML-код) и невидимых символов (таких как неразрывные пробелы, например,
).
Для поиска или взаимодействия с таким элементом используйте Unicode-эквивалент сущности. Например:
<div data="Some Value">Some Text</div>
const myElem = await $('div[data="Some\u00a0Value"]')
await expect(myElem).toHaveAttribute('data', 'div[Some\u00a0Value')
await expect(myElem).toHaveText('Some\u00a0Text')
Все ссылки на Unicode можно найти в спецификации HTML.
Примечание: Unicode не чувствителен к регистру, поэтому \u00a0
и \u00A0
работают одинаково. Чтобы найти элемент в инспекторе браузера, удалите u
из Unicode, например: div[data="Some\00a0Value"]