Costruire un test di base usando Mocha e Chai
Per creare un test di base utilizzando Mocha e Chai, puoi seguire questi passaggi:
1. Installa Mocha e Chai: usa npm(Node Package Manager) per installare Mocha e Chai nel tuo progetto Node.js. Esegui il seguente comando nella directory del tuo progetto:
npm install mocha chai --save-dev
2. Creare un file di prova: creare un nuovo file, ad esempio test.js
, e importare le seguenti dichiarazioni da utilizzare Mocha e Chai:
const chai = require('chai');
const expect = chai.expect;
describe('Example Test Suite',() => {
it('should pass the test',() => {
expect(2 + 2).to.equal(4);
});
});
3. Eseguire il test: aprire il terminale ed eseguire il mocha
comando per eseguire i test. Se tutto va liscio, vedrai i risultati visualizzati nel terminale.
Questo test di base utilizza Mocha e Chai per controllare un semplice calcolo. Nell'esempio sopra, controlliamo che il risultato dell'operazione 2 + 2
sia uguale a 4
. Se il risultato è corretto, il test passerà.
Aggiungendo describe
e it
bloccando, puoi costruire test più complessi e controllare diverse parti del tuo codice sorgente.
Si noti che è anche possibile utilizzare altri metodi di asserzione forniti da Chai, come assert
o should
, per il test. L'utilizzo specifico dipende dalla tua scelta e da come vuoi organizzare il tuo codice di test.
Utilizzo di asserzioni e query per verificare i risultati delle funzioni
Quando si utilizza Mocha e Chai per il test, è possibile utilizzare asserzioni e query per verificare i risultati delle funzioni. Ecco alcuni esempi di utilizzo di asserzioni e query per controllare i risultati delle funzioni:
1. Utilizzare l' expect
asserzione e la to.equal
query per verificare il risultato di una funzione che restituisce un valore specifico:
const result = myFunction();
expect(result).to.equal(expectedValue);
2. Utilizzare l'asserzione `expect` e la query to.be.true
o to.be.false
per verificare il risultato di una funzione che restituisce un valore booleano:
const result = myFunction();
expect(result).to.be.true; // or expect(result).to.be.false;
3. Utilizzare l'asserzione `expect` e la to.be.null
query or to.be.undefined per verificare il risultato di una funzione che restituisce un valore null o undefined:
const result = myFunction();
expect(result).to.be.null; // or expect(result).to.be.undefined;
4. Utilizzare l' expect
asserzione e la to.include
query per verificare se un valore è incluso in un array o in una stringa:
const result = myFunction();
expect(result).to.include(expectedValue);
5. Utilizzare l' expect
asserzione e la to.have.lengthOf
query per controllare la lunghezza di un array o di una stringa:
const result = myFunction();
expect(result).to.have.lengthOf(expectedLength);
Questi esempi sono solo alcuni dei molti modi per utilizzare asserzioni e query Mocha e Chai per controllare i risultati delle funzioni. È possibile personalizzare e utilizzare le asserzioni e le query appropriate in base alle esigenze di test del progetto.
Creazione di casi di test riusciti e falliti
Quando si scrivono casi di test con Mocha e Chai, è importante coprire sia gli scenari di successo che quelli di fallimento. Ecco alcuni esempi di creazione di casi di test per scenari sia di successo che di fallimento:
1. Caso di test riuscito:
describe('myFunction',() => {
it('should return the expected result',() => {
// Arrange
const input = // provide the input for the function
const expected = // define the expected result
// Act
const result = myFunction(input);
// Assert
expect(result).to.equal(expected);
});
});
2. Caso di test di fallimento:
describe('myFunction',() => {
it('should throw an error when invalid input is provided',() => {
// Arrange
const invalidInput = // provide invalid input for the function
// Act and Assert
expect(() => myFunction(invalidInput)).to.throw(Error);
});
});
Nel caso di test riuscito, definisci l'input per la funzione e il risultato atteso. Quindi, chiami la funzione con l'input e affermi che il risultato corrisponde al valore previsto.
Nel caso di test di errore, fornisci un input non valido alla funzione e affermi che genera un errore. Ciò garantisce che la funzione gestisca correttamente input non validi o condizioni di errore.
Coprendo sia gli scenari di successo che quelli di fallimento nei casi di test, puoi assicurarti che il tuo codice venga testato a fondo e gestisca le diverse situazioni in modo appropriato.