JavaScript:
Skriva tester

Hur man gör:

Nativt tillvägagångssätt (med Jest)

Jest är ett populärt testramverk som tillhandahåller ett användarvänligt API för att skriva enhetstester i JavaScript. Det kräver minimal konfiguration och kommer med funktioner som mockfunktioner, timers och snapshot-testning.

  1. Installation:
npm install --save-dev jest
  1. Skriva ett enkelt test:

Skapa en fil med namnet sum.test.js:

const sum = require('./sum'); // Antag att denna funktion helt enkelt lägger till två nummer

test('lägger till 1 + 2 för att bli 3', () => {
  expect(sum(1, 2)).toBe(3);
});
  1. Köra ditt test:
npx jest

Exempel på utskrift:

PASS  ./sum.test.js
✓ lägger till 1 + 2 för att bli 3 (5ms)

Testa Asynkron Kod

Jest gör det enkelt att testa löften och syntax för async/await:

// asyncSum.js
async function asyncSum(a, b) {
  return Promise.resolve(a + b);
}

// asyncSum.test.js
test('asynkron addition fungerar', async () => {
  await expect(asyncSum(1, 2)).resolves.toBe(3);
});

Använda Tredjepartsbibliotek (Mocha & Chai)

Mocha är ett annat populärt testramverk, ofta använt med påståendebiblioteket Chai för mer uttrycksfulla tester.

  1. Installation:
npm install --save-dev mocha chai
  1. Skriva ett test med Mocha och Chai:

Skapa calculate.test.js:

const chai = require('chai');
const expect = chai.expect;

const calculate = require('./calculate'); // En enkel beräkningsmodul

describe('Calculate', function() {
  it('bör summera två värden', function() {
    expect(calculate.sum(5, 2)).to.equal(7);
  });
});
  1. Köra dina tester med Mocha:

Lägg till ett skript i din package.json:

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

Exekvera sedan:

npm test

Exempel på utskrift:

  Calculate
    ✓ bör summera två värden


  1 passing (8ms)

Dessa exempel illustrerar grundläggande skrivning och utförande av tester i JavaScript. Att anta ett testramverk som Jest eller Mocha med Chai kan ge en solid grund för robusta applikationstestningar, vilket hjälper till att säkerställa att din kod fungerar som avsett genom uppdateringar och refaktoriseringar.