Module assert 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 :
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(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, 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'); // 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([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' }); // 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, '1'); // lève AssertionError
2. assert.notStrictEqual(actual, expected[, message])
Testeactualetexpecteds'ils ne sont pas strictement égaux (!==)。
Exemple
assert.notStrictEqual(1, 1); // lève AssertionError
3. assert.throws(block[, error][, message])
Testeblocksi une fonction va lever une erreur.
Exemple
() => {
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
() => {
const x = 1 + 1;
},
Erreur
); // réussi
5. assert.fail([message])
Lance de force uneAssertionError。
Exemple
Exemple d'application pratique
Supposons que nous ayons une fonction simpleadd, utilisé pour calculer la somme de deux nombres :
Exemple
return a + b;
}
ما میتوانیم استفاده کنیمassertmodule pour écrire des tests pour celui-ci :
Exemple
// 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
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.Mode strict: Node.js fournit également
assert/strictmodule, qui estassertversion stricte du module. Toutes les comparaisons utilisent l'égalité stricte (===)。const assert = require('assert/strict');Messages d'erreur personnalisés: Fournissez des messages d'erreur clairs pour chaque assertion, ce qui aide à localiser rapidement les problèmes.
Considérations de performance: Bien que
assertLe 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.
Modules intégrés de Node.js