< JavaScript teszt

JavaScript teszt - Jest

Szerző: Sallai András

Copyright © 2021, Sallai András

Szerkesztve: 2024

Licenc: CC Attribution-Share Alike 4.0 International

Web: https://szit.hu

Webhely

A Jest egy JavaScript tesztelő keretrendszer, ami az egyszerűségre törekszik.

Webhely:

https://jestjs.io/

Telepítés

npm install --save-dev jest

Bejegyzés a package.json fájlba

"scripts": { "test": "jest", },

ECMAScript modulok esetén:

"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.

it('works', () => { expect(1).toBe(1); });

Összeadó

Legyen egy sum.js nevű fájl.

function sum(num1, num2) { return num1 + num2; } module.exports = sum;
const sum = require('./sum'); test('összeadás: 2 + 3 = 5', () => { expect(sum(2, 3)).toBe(5); });

Osztály metódusa, adatagja

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).

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:

"type": "module", "scripts": { "test": "jest", }, "jest": { "transform": { "^.+\\.js?$": "babel-jest" } },

Készítsünk egy .babelrc nevű fájlt a következő tartalommal:

{ "presets": ["@babel/preset-env"] }

Minta

https://github.com/oktat/jstriangle

Források

https://jestjs.io/ (2021)

https://www.valentinog.com/blog/jest/ (2021)