Anpassade Matchers
WebdriverIO använder ett Jest-liknande expect
bekräftelsebibliotek som kommer med speciella funktioner och anpassade matchers specifikt för att köra webb- och mobiltester. Trots att biblioteket med matchers är stort, passar det definitivt inte alla möjliga situationer. Därför är det möjligt att utöka de befintliga matchers med anpassade som definieras av dig.
Även om det för närvarande inte finns någon skillnad i hur matchers definieras som är specifika för browser
-objektet eller en element-instans, kan detta säkerligen förändras i framtiden. Håll ett öga på webdriverio/expect-webdriverio#1408
för ytterligare information om denna utveckling.
Anpassade Browser Matchers
För att registrera en anpassad browser matcher, anropa extend
på expect
-objektet antingen direkt i din spec-fil eller som en del av t.ex. before
-hooken i din wdio.conf.js
:
loading...
Som visas i exemplet tar matcher-funktionen det förväntade objektet, t.ex. browser- eller elementobjektet, som den första parametern och det förväntade värdet som den andra. Du kan sedan använda matchern så här:
loading...
Anpassade Element Matchers
Liknande anpassade browser matchers skiljer sig elementmatcher inte åt. Här är ett exempel på hur man skapar en anpassad matcher för att bekräfta aria-label för ett element:
loading...
Detta låter dig anropa bekräftelsen så här:
loading...
TypeScript-stöd
Om du använder TypeScript krävs ytterligare ett steg för att säkerställa typsäkerheten för dina anpassade matchers. Genom att utöka Matcher
-gränssnittet med dina anpassade matchers försvinner alla typproblem:
loading...
Om du skapade en anpassad asymmetrisk matcher kan du på liknande sätt utöka expect
-typerna enligt följande:
declare global {
namespace ExpectWebdriverIO {
interface AsymmetricMatchers {
myCustomMatcher(value: string): ExpectWebdriverIO.PartialMatcher;
}
}
}