Tartalomjegyzék
JavaScript teszt - Mocha
- Szerző: Sallai András
- Copyright © 2021, Sallai András
- Web: https://szit.hu
A Mocha
Node.js é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:
- test/valami.js
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:
- test/valami.js
describe('Valamik', function() { it('valami', function(done) { done(); }); });
Tömb tartalma
- test/test.js
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); }); }); });
Node.js 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):
- package.json
"scripts": { "test": "mocha" }
Futtatás:
npm test
Böngészőből
- test/index.html
<!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, az only() függvénnyel van beállítva:
describe('valami', () => { it.only('egy', () => { }); it('ketto', () => { }); });
Az „egy” ne fusson, a skip() függvénnyel van beállítva:
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 ... });
Böngészőben futó függvény tesztelése
A HTML oldalon és a package.json fájlban is be kell állítani a type értéket module-ra.
- src/triangle.js
function calcArea(base, height) { return 0.5 * base * height; } export {calcArea}
- test/app.spec.js
import assert from 'assert'; import { calcArea } from '../src/triangle.js'; describe('A calcArea() függvény tesztje', function() { it('Ha a bemenet 30, 35, eredmény 525', function() { const base = 30; const height = 35; const area = calcArea(base, height); // expect(area).to.equal(525); assert.equal(area, 525); }); });
chai
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)