Skip to content
Vitest 0
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

Lefedettség

Pillanatképek

Mockolás

Típusok tesztelése

Vitest UI

Böngésző mód (kísérleti)

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

API

Teszt API Dokumentáció

Mock függvények

Vi

expect

expectTypeOf

assertType

Konfiguráció

Vitest konfigurálása

Ezen az oldalon

Migrálási útmutató ​

Átállás a Jest-ről ​

A Vitest-et úgy tervezték, hogy a Jest-tel kompatibilis API-val rendelkezzen, annak érdekében, hogy az átállás a Jest-ről a lehető legegyszerűbb legyen. Ezen erőfeszítések ellenére a következő különbségekkel találkozhatsz:

Alapértelmezett globális API ​

A Jest alapértelmezetten engedélyezi a globális API-t. A Vitest esetében ez nincs engedélyezve. Engedélyezheted a globális változókat a globals konfigurációs beállításon keresztül, vagy frissítheted a kódodat, hogy a vitest modulból importáljon.

Ha úgy döntesz, hogy letiltod a globális változókat, vedd figyelembe, hogy az olyan gyakori könyvtárak, mint a testing-library, nem fogják automatikusan futtatni a DOM takarítását.

Modulok mockolása ​

Amikor egy modult mockolsz a Jestben, a gyártó függvény argumentumának visszatérési értéke az alapértelmezett export. A Vitest esetében a factory argumentumnak egy objektumot kell visszaadnia, amelyben minden export explicit módon definiálva van. Például a következő jest.mock-ot a következőképpen kell frissíteni:

diff
- jest.mock('./some-path', () => 'hello')
+ vi.mock('./some-path', () => ({
+   default: 'hello',
+ })

További részletekért kérjük, tekintsd meg a vi.mock API szekciót.

Automatikus mockolási viselkedés ​

A Jest-tel ellentétben a <root>/__mocks__ mappában lévő mockolt modulok nincsenek betöltve, hacsak nem hívják meg a vi.mock()-ot. Ha azt szeretnéd, hogy minden tesztben mockolva legyenek, mint a Jest-ben, akkor mockolhatod őket a setupFiles belsejében.

Mockolt csomag eredetijének importálása ​

Ha csak részlegesen szimulálsz egy csomagot, akkor korábban használhattad a Jest requireActual függvényét. A Vitest-ben ezeket a hívásokat a vi.importActual-lal kell helyettesítened.

diff
- const { cloneDeep } = jest.requireActual('lodash/cloneDeep')
+ const { cloneDeep } = await vi.importActual('lodash/cloneDeep')

Környezeti változók ​

A Jest-hez hasonlóan a Vitest is test-re állítja a NODE_ENV változót, ha az korábban nem volt beállítva. A Vitest a JEST_WORKER_ID helyett a VITEST_POOL_ID változót használja (ami mindig kisebb vagy egyenlő, mint a maxThreads), tehát ha erre támaszkodsz, ne felejtsd el átnevezni. A Vitest ezenkívül elérhetővé teszi a VITEST_WORKER_ID-t is, amely egy futó worker egyedi azonosítója - ezt a számot a maxThreads nem befolyásolja, és minden létrehozott workerrel növekszik.

Ha módosítani szeretnéd a környezeti változókat, akkor a Jest-ben a replaceProperty API-t fogod használni, a Vitest-ben pedig a vi.stubEnv-et használhatod erre.

Done Callback ​

A Vitest v0.10.0-tól kezdve a tesztek callback stílusú deklarálása elavult. Átírhatod őket async/await függvények használatára, vagy használhatsz Promise-t a callback stílus utánzásához.

diff
- it('should work', (done) => {
+ it('should work', () => new Promise(done => {
    // ...
    done()
- })
+ }))

Hookok ​

A beforeAll/beforeEach hookok bontó függvényt adhatnak vissza a Vitest esetében. Emiatt előfordulhat, hogy át kell írnod a hook definícióidat, ha azok undefined-től vagy null-tól eltérő értéket adnak vissza:

diff
- beforeEach(() => setActivePinia(createTestingPinia()))
+ beforeEach(() => { setActivePinia(createTestingPinia()) })

Típusok ​

A Vitest nem kínál sok típust a Vi névtérben, ez főként az illesztőkkel való kompatibilitás miatt van, ezért előfordulhat, hogy a típusokat közvetlenül a vitest-ből kell importálnod ahelyett, hogy a Vi névtérre támaszkodnál:

diff
- let fn: jest.Mock<string, [string]>
+ import type { Mock } from 'vitest'
+ let fn: Mock<[string], string>

Továbbá, a Vitest-ben az Args típus az első argumentum a Returns helyett, ahogy a diff-ben láthatod.

Időzítők ​

A Vitest nem támogatja a Jest régi időzítőit.

Vue Pillanatképek ​

Ez nem kifejezetten Jest-specifikus funkció, de ha korábban a Jest-et a vue-cli preset-tel használtad, akkor telepítened kell a jest-serializer-vue csomagot, és használnod kell a setupFiles belsejében:

vite.config.js

js
import { defineConfig } from 'vite';

export default defineConfig({
  test: {
    setupFiles: ['./tests/unit/setup.js'],
  },
});

tests/unit/setup.js

js
import vueSnapshotSerializer from 'jest-serializer-vue';

expect.addSnapshotSerializer(vueSnapshotSerializer);

Ellenkező esetben a pillanatképekben sok escape-elt " karakter lesz.

Pager
Előző oldalÖsszehasonlítás más tesztfuttatókkal
Következő oldalGyakori hibák

A MIT licenc alapján kiadva.

Copyright (c) 2024 Mithril Contributors

https://v0.vitest.dev/guide/migration

A MIT licenc alapján kiadva.

Copyright (c) 2024 Mithril Contributors