Tartalomjegyzék

< JavaScript teszt

JavaScript teszt - Jest

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