Tartalomjegyzék
JavaScript teszt - Jest
- Szerző: Sallai András
- Copyright © 2021, Sallai András
- Szerkesztve: 2024
- Web: https://szit.hu
Webhely
A Jest egy JavaScript tesztelő keretrendszer, ami az egyszerűségre törekszik.
Webhely:
Telepítés
npm install --save-dev jest
Bejegyzés a package.json fájlba
- package.json
"scripts": { "test": "jest", },
ECMAScript modulok esetén:
- package.json
"type": "module", "scripts": { "test": "node --experimental-vm-modules node_modules/.bin/jest", },
Teszt létrehozása
Tetszőleges könyvtárban hozzunk létre egy .spec.js vagy egy .test.js kiterjesztésű fájlt. A könyvtár neve célszerűen lehet test
projekt01/ `-test/ `-valami.spec.js
projekt01/ `-test/ `-valami.test.js
A .spec.js és a .test.js kiterjesztésű fájlt a jest megtalálja.
__tests__
A másik lehetőség, hogy egy tests nevű könyvtárba rakjuk a teszteket. Így nem szükséges a spec.js kiterjesztés, elég a js.
projekt01/ `-__tests__/ `-valami.js
A teszt tartalma
Kezdetnek legyen egy teszt, ami 1-t vár és egyet is kap.
- valami.spec.js
it('works', () => { expect(1).toBe(1); });
Összeadó
Legyen egy sum.js nevű fájl.
- sum.js
function sum(num1, num2) { return num1 + num2; } module.exports = sum;
- sum.spec.js
const sum = require('./sum'); test('összeadás: 2 + 3 = 5', () => { expect(sum(2, 3)).toBe(5); });
Osztály metódusa, adatagja
- test/app.spec.js
import { Triangle } from "../src/js/triangle"; it('30, 35-re 525.0 működik', () => { const tri = new Triangle(); expect(tri.calcArea(30, 35)).toBe(525.0); }) it('A calcArea() létezik', () => { const tri = new Triangle(); expect(tri.calcArea()).toBeDefined(); }) it('Az area tulajdonság létezik', () => { const tri = new Triangle(); expect(tri.area).toBeDefined(); })
Teszt futtatása
Ha tettünk bejegyzést a package.json fájl scripts szakaszába, a futtatás:
npm test
describe
A teszteket egy describe() függvénnyel csoportosíthatjuk. Első paramétere egy string, második paraméterek egy visszahívó függvény (callback).
- valami.spec.js
describe("Artimetika", () => { test("Valami név", () => { // ide jön a teszt }); });
ECMAScript babel csomaggal
yarn add --dev jest yarn add --dev babel-jest yarn add --dev @babel/preset-env
Részlet a package.json fájlból:
- package.json
"type": "module", "scripts": { "test": "jest", }, "jest": { "transform": { "^.+\\.js?$": "babel-jest" } },
Készítsünk egy .babelrc nevű fájlt a következő tartalommal:
- .babelrc
{ "presets": ["@babel/preset-env"] }
Minta
Források
- https://jestjs.io/ (2021)