< JavaScript teszt

JavaScript teszt - Mocha

Szerző: Sallai András

Copyright © 2021-2023, Sallai András

Licenc: CC Attribution-Share Alike 4.0 International

Web: https://szit.hu

A Mocha

NodeJS és böngészőben használható tesztelő keretrendszer JavaScript számára.

https://mochajs.org/ (2021)

Telepítés

Npm globálisan:

npm install --global mocha

vagy a projekt számára fejlesztéshez:

npm install --save-dev mocha

Ellenőrzés

Ha globálisan van telepítve:

mocha --version

Ha csak helyben van:

npx mocha --version

Kezdés

A projekt gyökérkönyvtárában készítsünk egy test nevű könyvtárat, amiben létrehozunk egy valami.js nevű tesztet:

mkdir test $EDITOR test/valami.js

A $EDITOR a kedvenc szerkesztőnket jelenti.

A szerkesztőben:

describe('Valamik', function() { it('valami', function() { //teszt jön ide }); });

Futtatás paranccsal

A futtatható mocha parancs a node_modules/mocha/bin/mocha útvonalon található. Futtatható az útvonal megadásával:

./node_modules/mocha/bin/mocha

Vagy:

npx mocha

Async teszt

A szerkesztőben:

describe('Valamik', function() { it('valami', function(done) { done(); }); });

Tömb tartalma

var assert = require('assert'); describe('Tömb', function() { describe('#indexOf()', function() { it('Ha nincs benne 6 -1 kell legyen az eredmény', function() { assert.equal([1, 2, 3, 4, 5].indexOf(6), -1); }); }); });

NodeJS feladat készítése

A futtatáshoz használhatjuk az npm parancsot, ha a package.json fájlban írok hozzá egy feladatot (task, script):

"scripts": { "test": "mocha" }

Futtatás:

npm test

Böngészőből

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Mocha</title> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" href="https://unpkg.com/mocha/mocha.css" /> </head> <body> <div id="mocha"></div> <script src="https://unpkg.com/chai/chai.js"></script> <script src="https://unpkg.com/mocha/mocha.js"></script> <script class="mocha-init"> mocha.setup('bdd'); mocha.checkLeaks(); </script> <script src="test.app.js"></script> <script class="mocha-exec"> mocha.run(); </script> </body> </html>

Kizáró tesztek

Csak az „egy” fusson:

describe('valami', () => { it.only('egy', () => { }); it('ketto', () => { }); });

Az „egy” ne fusson:

describe('valami', () => { it.skip('egy', () => { }); it('ketto', () => { }); });

Az xit használata:

describe('valami', () => { xit('egy', () => { }); it('ketto', () => { }); });

Horgok

describe('horgok', function () { before(function () { // egyszer lefut az első teszt előtt a blokkban }); after(function () { // egyszer lefut az utolsó teszt után a blokkban }); beforeEach(function () { // minden teszt előtt lefut a blokkban }); afterEach(function () { // minden teszt után lefut a blokkban }); //tesztesetek ... });

chai

https://www.chaijs.com/

A chai segítségével assert típusú állítások helyett expect típusúakat használhatunk.

Linkek

https://mochajs.org/ (2023)

https://devhints.io/chai (2023)