J'utilise Mocha pour tester un petit module dans mon application Express.js. Dans ce module, l'une de mes fonctions renvoie un tableau. Je veux tester si le tableau est correct ou non pour une entrée donnée. Je procède de la manière suivante :
suite('getWords', function(){
test("getWords should return list of numbers", function() {
var result = ['555', '867', '5309'];
assert.equal(result, getWords('555-867-5309'));
});
});
Lors de l'exécution, j'obtiens l'erreur d'assertion suivante :
AssertionError: ["555","867","5309"] == ["555","867","5309"]
Cependant, lorsque je transforme mon test en un assert.deepEqual
le test passe bien. Je me demandais si c'était un cas de ==
vs ===
mais si j'entre
[1,2,3] === [1,2,3]
dans la ligne de commande node.js, j'obtiens toujours false.
Pourquoi les tableaux ne sont pas comparables à d'autres valeurs (par ex. 1 == 1
) ? et quelle est la différence entre assert.equal et assert.deepEqual ?