Утверждение
Тестовый раннер WDIO поставляется со встроенной библиотекой утверждений, которая позволяет делать мощные ут верждения о различных аспектах браузера или элементов в вашем (веб) приложении. Она расширяет функциональность Jest Matchers дополнительными матчерами, оптимизированными для e2e тестирования, например:
const $button = await $('button')
await expect($button).toBeDisplayed()
или
const selectOptions = await $$('form select>option')
// make sure there is at least one option in select
await expect(selectOptions).toHaveChildren({ gte: 1 })
Полный список см. в документации API expect.
Миграция с Chai
Chai и expect-webdriverio могут сосуществовать, и с некоторыми незначительными корректировками можно осуществить плавный переход на expect-webdriverio. Если вы обновились до WebdriverIO v6, то по умолчанию у вас будет доступ ко всем утверждениям из expect-webdriverio
из коробки. Это означает, что глобально везде, где вы используете expect
, вы будете вызывать утверждение expect-webdriverio
. Это так, если только вы не установили injectGlobals
в значение false
или явно не переопределили глобальный expect
для использования Chai. В этом случае у вас не будет доступа к каким-либо утверждениям expect-webdriverio без явного импорта пакета expect-webdriverio там, где он вам нужен.
Это руководство покажет примеры миграции с Chai, если он был переопределен локально, и как выполнить миграцию с Chai, если он был переопределен глобально.
Локально
Предположим, Chai был явно импортирован в файл, например:
// myfile.js - original code
import { expect as expectChai } from 'chai'
describe('Homepage', () => {
it('should assert', async () => {
await browser.url('./')
expectChai(await browser.getUrl()).to.include('/login')
})
})