Forráskódba ágyazott tesztelés
A Vitest lehetővé teszi a tesztek futtatását közvetlenül a forráskódon belül, az implementációval együtt, hasonlóan a Rust moduljainak tesztjeihez.
Ez a megközelítés biztosítja, hogy a tesztek ugyanazt a hatókört (closure) osszák meg az implementációval, lehetővé téve a privát állapotok tesztelését anélkül, hogy exportálni kellene azokat. Emellett gyorsabb visszajelzési ciklust biztosít a fejlesztés során.
WARNING
Ez az útmutató azt mutatja be, hogyan írhat teszteket a forráskódjába. Ha külön tesztfájlokba szeretne teszteket írni, kövesse a "Tesztírás" útmutatót.
Beállítás
A kezdéshez helyezzen el egy if (import.meta.vitest)
blokkot a forrásfájl végére, és írjon bele néhány tesztet. Például:
// az implementáció
export function add(...args: number[]) {
return args.reduce((a, b) => a + b, 0);
}
// forráskódba ágyazott tesztek
if (import.meta.vitest) {
const { it, expect } = import.meta.vitest;
it('add', () => {
expect(add()).toBe(0);
expect(add(1)).toBe(1);
expect(add(1, 2, 3)).toBe(6);
});
}
Állítsa be a includeSource
konfigurációt a Vitest számára, hogy a src/
mappában található fájlokat is feldolgozza:
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
includeSource: ['src/**/*.{js,ts}'],
},
});
Ezután elkezdheti a tesztelést.
$ npx vitest
Éles build
Az éles buildhez be kell állítania a define
opciókat a konfigurációs fájlban, lehetővé téve a bundler számára a holt kód eltávolítását. Például Vite-ban:
/// <reference types="vitest/config" />
import { defineConfig } from 'vite'
export default defineConfig({
test: {
includeSource: ['src/**/*.{js,ts}'],
},
define: {
'import.meta.vitest': 'undefined',
},
})
Egyéb bundler eszközök
unbuild
import { defineBuildConfig } from 'unbuild'
export default defineBuildConfig({
replace: {
'import.meta.vitest': 'undefined',
},
// other options
})
További információ: unbuild
Rollup
import replace from '@rollup/plugin-replace'
export default {
plugins: [
replace({
'import.meta.vitest': 'undefined',
})
],
// other options
}
További információ: Rollup
TypeScript
Az import.meta.vitest
TypeScript támogatásának biztosításához adja hozzá a vitest/importMeta
elemet a tsconfig.json
fájlhoz:
{
"compilerOptions": {
"types": [
"vitest/importMeta"
]
}
}
A teljes példáért lásd az examples/in-source-test
példát.
Megjegyzések
Ez a funkció hasznos lehet a következőkhöz:
- Egységtesztelés kis hatókörű függvényekhez vagy segédprogramokhoz
- Prototípus készítés
- Beágyazott állítások
Összetettebb tesztek, például komponensek vagy E2E tesztelés esetén ajánlott inkább külön tesztfájlokat használni.