Node.js és böngészőben használható tesztelő keretrendszer JavaScript számára.
Npm globálisan:
npm install --global mocha
vagy a projekt számára fejlesztéshez:
npm install --save-dev mocha
Ha globálisan van telepítve:
mocha --version
Ha csak helyben van:
npx mocha --version
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 }); });
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
A szerkesztőben:
describe('Valamik', function() { it('valami', function(done) { done(); }); });
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); }); }); });
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
<!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>
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', () => { }); });
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 ... });
A HTML oldalon és a package.json fájlban is be kell állítani a type értéket module-ra.
function calcArea(base, height) { return 0.5 * base * height; } export {calcArea}
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); }); });
A chai segítségével assert típusú állítások helyett expect típusúakat használhatunk.