Skip to content
Vitest 1
Main Navigation ÚtmutatóAPIKonfigurációHaladó
1.6.1
0.34.6

magyar

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština

magyar

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština

Megjelenés

Sidebar Navigation

Útmutató

Miért a Vitest?

Első lépések

Funkciók

Munkaterület

Parancssori felület

Tesztszűrés

Reporterek

Lefedettség

Pillanatképek

Mockolás

Típusok tesztelése

Vitest UI

Böngésző mód

Forráskódba épített tesztelés

Tesztkörnyezet

Tesztkörnyezet

Egyezésvizsgálók kiterjesztése

IDE integrációk

Hibakeresés

Összehasonlítás más tesztfuttatókkal

Migrálási útmutató

Gyakori hibák

A teljesítmény javítása

API

Teszt API Dokumentáció

Mock függvények

Vi

expect

expectTypeOf

assert

assertType

Konfiguráció

A Vitest konfigurációs fájl beállítása

Vitest konfigurálása

Ezen az oldalon

Egyezésvizsgálók kiterjesztése ​

Mivel a Vitest kompatibilis a Chai és a Jest keretrendszerekkel, az expect.extend metódus mellett a chai.use API is használható, attól függően, melyik felel meg jobban az igényeidnek.

Ez az útmutató az egyezésvizsgálók expect.extend használatával történő kiterjesztését mutatja be. Ha a Chai API érdekel, nézd meg az ő útmutatójukat.

Az alapértelmezett egyezésvizsgálók kiterjesztéséhez hívd meg az expect.extend metódust egy, az egyezésvizsgálókat tartalmazó objektummal.

ts
expect.extend({
  toBeFoo(received, expected) {
    const { isNot } = this;
    return {
      // ne módosítsd a "pass" értékét az isNot alapján. ezt a Vitest automatikusan elvégzi
      pass: received === 'foo',
      message: () => `${received} is${isNot ? ' not' : ''} foo`,
    };
  },
});

Ha TypeScriptet használsz, a Vitest 0.31.0 verziójától kezdve az alapértelmezett Assertion interfész kiterjeszthető egy környezeti deklarációs fájlban (pl. vitest.d.ts) az alábbi kóddal:

ts
import type { Assertion, AsymmetricMatchersContaining } from 'vitest';

interface CustomMatchers<R = unknown> {
  toBeFoo: () => R;
}

declare module 'vitest' {
  interface Assertion<T = any> extends CustomMatchers<T> {}
  interface AsymmetricMatchersContaining extends CustomMatchers {}
}

WARNING

Ne felejtsd el a tsconfig.json fájlban megadni a környezeti deklarációs fájlt.

Az egyezésvizsgáló visszatérési értékének a következő interfésszel kell kompatibilisnek lennie:

ts
interface MatcherResult {
  pass: boolean;
  message: () => string;
  // Ha ezeket átadod, automatikusan megjelennek a különbségben, ha
  // az egyezésvizsgáló sikertelen, így a diff-et nem kell külön megjelenítened
  actual?: unknown;
  expected?: unknown;
}

WARNING

Ha aszinkron egyezésvizsgálót hozol létre, ne felejtsd el await-elni az eredményt (await expect('foo').toBeFoo()) magában a tesztben.

Az egyezésvizsgáló függvény első argumentuma a fogadott érték (az expect(received)-ben található). A többi argumentum közvetlenül az egyezésvizsgálónak kerül átadásra.

Az egyezésvizsgáló függvény hozzáfér a this kontextushoz a következő tulajdonságokkal:

  • isNot

    Igaz értéket ad, ha az egyezésvizsgálót a not módosítóval hívták meg (expect(received).not.toBeFoo()).

  • promise

    Ha az egyezésvizsgálót a resolved vagy rejected módosítóval hívták meg, ez az érték tartalmazza a módosító nevét. Ellenkező esetben üres szöveg lesz.

  • equals

    Ez egy segédfüggvény, amellyel össze lehet hasonlítani két értéket. true értéket ad vissza, ha az értékek egyenlőek, egyébként false értéket. Ezt a függvényt használják belsőleg a legtöbb egyezésvizsgálóhoz. Alapértelmezés szerint támogatja az aszimmetrikus egyezésvizsgálókat tartalmazó objektumokat.

  • utils

    Segédfüggvények gyűjteményét tartalmazza, amelyek segítségével üzeneteket jeleníthetsz meg.

A this kontextus az aktuális tesztre vonatkozó információkat is tartalmaz, melyek az expect.getState() meghívásával is lekérdezhetők. A leghasznosabb tulajdonságok:

  • currentTestName

    Az aktuális teszt teljes neve (beleértve a leíró blokkokat is).

  • testPath

    Az aktuális teszt elérési útja.

Pager
Előző oldalTesztkörnyezet
Következő oldalIDE integrációk

A MIT licenc alapján kiadva.

Copyright (c) 2024 Mithril Contributors

https://v1.vitest.dev/guide/extending-matchers

A MIT licenc alapján kiadva.

Copyright (c) 2024 Mithril Contributors