Module assert de Node.js

Java FileModules intégrés de Node.js


Dans Node.js, leassertmodule est une bibliothèque utilitaire intégrée pour écrire des tests unitaires. Il fournit une série de fonctions d'assertion pour vérifier si le comportement du code correspond aux attentes. Si une assertion échoue,assertle module lèvera uneAssertionErrorexception.

assertLe module convient parfaitement à une utilisation pendant le développement et les tests, aidant les développeurs à découvrir rapidement les problèmes dans le code.


Comment utiliser le module assert ?

Pour utiliserassertmodule, vous devez d'abord l'importer :

const assert = require('assert');

Méthodes d'assertion de base

1. assert.ok(value[, message])

assert.ok()est la méthode d'assertion la plus élémentaire. Elle testevalues'il s'agit d'une valeur truthy. Sivalueelle est falsy, alors une erreur est levéeAssertionError。

Exemple

assert.ok(true); // réussi
assert.ok(1); // réussi
assert.ok(false); // lève AssertionError
assert.ok(0, 'value is falsy'); // lève AssertionError: value is falsy

2. assert.equal(actual, expected[, message])

assert.equal()Utilise==opérateur pour compareractualetexpecteds'ils sont égaux (égalité faible).

Exemple

assert.equal(1, 1); // réussi
assert.equal(1, '1'); // réussi
assert.equal(1, 2); // lève AssertionError

3. assert.strictEqual(actual, expected[, message])

assert.strictEqual()Utilise===opérateur pour compareractualetexpecteds'ils sont strictement égaux.

Exemple

assert.strictEqual(1, 1); // réussi
assert.strictEqual(1, '1'); // lève AssertionError

4. assert.deepEqual(actual, expected[, message])

assert.deepEqual()Utilisé pour comparer si les contenus de deux objets ou tableaux sont égaux (comparaison récursive).

Exemple

assert.deepEqual({ a: 1 }, { a: 1 }); // réussi
assert.deepEqual([1, 2], [1, 2]); // réussi
assert.deepEqual({ a: 1 }, { a: '1' }); // réussi (comparaison non stricte)

5. assert.deepStrictEqual(actual, expected[, message])

assert.deepStrictEqual()Similaire àdeepEqual, mais utilise une comparaison stricte (===)。

Exemple

assert.deepStrictEqual({ a: 1 }, { a: 1 }); // réussi
assert.deepStrictEqual({ a: 1 }, { a: '1' }); // lève AssertionError

Autres méthodes d'assertion courantes

1. assert.notEqual(actual, expected[, message])

Testeactualetexpecteds'ils ne sont pas égaux (!=)。

Exemple

assert.notEqual(1, 2); // réussi
assert.notEqual(1, '1'); // lève AssertionError

2. assert.notStrictEqual(actual, expected[, message])

Testeactualetexpecteds'ils ne sont pas strictement égaux (!==)。

Exemple

assert.notStrictEqual(1, '1'); // réussi
assert.notStrictEqual(1, 1); // lève AssertionError

3. assert.throws(block[, error][, message])

Testeblocksi une fonction va lever une erreur.

Exemple

assert.throws(
  () => {
    throw new Error('Wrong value');
  },
  Erreur
); // réussi

assert.throws(
  () => {
    throw new Error('Wrong value');
  },
  /Wrong/
); // réussi (l'expression régulière correspond au message d'erreur)

4. assert.doesNotThrow(block[, error][, message])

Testeblocksi une fonction ne lèvera pas d'erreur.

Exemple

assert.doesNotThrow(
  () => {
    const x = 1 + 1;
  },
  Erreur
); // réussi

5. assert.fail([message])

Lance de force uneAssertionError。

Exemple

assert.fail('Test failed'); // lève AssertionError : Test failed

Exemple d'application pratique

Supposons que nous ayons une fonction simpleadd, utilisé pour calculer la somme de deux nombres :

Exemple

function add(a, b) {
  return a + b;
}

ما می‌توانیم استفاده کنیمassertmodule pour écrire des tests pour celui-ci :

Exemple

const assert = require('assert');

// Cas de test normal
assert.strictEqual(add(1, 2), 3, '1 + 2 devrait être 3');
assert.strictEqual(add(-1, 1), 0, '-1 + 1 devrait être 0');

// Cas de test limite
assert.strictEqual(add(0, 0), 0, '0 + 0 devrait être 0');
assert.strictEqual(add(1.5, 2.5), 4, '1.5 + 2.5 devrait être 4');

// Cas de test d'erreur
assert.throws(
  () => ajoutez('1', 2),
  TypeError,
  'L'ajout d'une chaîne à un nombre devrait lever TypeError'
);

Notes

  1. Environnement de production:assertLe module est principalement utilisé dans les environnements de développement et de test. Il n'est pas recommandé de l'utiliser en production, car les échecs d'assertion provoqueront le plantage du programme.

  2. Mode strict: Node.js fournit égalementassert/strictmodule, qui estassertversion stricte du module. Toutes les comparaisons utilisent l'égalité stricte (===)。

    const assert = require('assert/strict');
  3. Messages d'erreur personnalisés: Fournissez des messages d'erreur clairs pour chaque assertion, ce qui aide à localiser rapidement les problèmes.

  4. Considérations de performance: Bien queassertLe module est très pratique, il doit être utilisé avec prudence dans le code critique en termes de performances, car les vérifications d'assertion ajoutent une surcharge supplémentaire.


Résumé

assertLe module est un outil de test simple mais puissant dans Node.js, particulièrement adapté aux tests unitaires et à la vérification du code pendant la phase de développement. En utilisant correctement diverses méthodes d'assertion, vous pouvez garantir efficacement l'exactitude du code. N'oubliez pas qu'une fois le développement terminé, vous devez remplacerassertmodule pour des tests plus complets.

Java FileModules intégrés de Node.js

Autres extensions