Sto usando Mocha per testare un piccolo modulo nella mia applicazione Express.js. In questo modulo, una delle mie funzioni restituisce un array. Voglio verificare se l'array è corretto o meno per un dato input. Sto facendo in modo simile a questo:La differenza tra assert.equal e assert.deepEqual nei test di Javascript con Mocha?
suite('getWords', function(){
test("getWords should return list of numbers", function() {
var result = ['555', '867', '5309'];
assert.equal(result, getWords('555-867-5309'));
});
});
Quando questo viene eseguito, ottengo il seguente errore di asserzione:
AssertionError: ["555","867","5309"] == ["555","867","5309"]
Tuttavia, quando cambio la mia prova a un assert.deepEqual
, il test viene superato bene. Mi chiedevo se si trattava di un caso di ==
vs ===
, ma se entro
[1,2,3] === [1,2,3]
nella riga di comando node.js, ho ancora ottenere falso.
Perché gli array non confrontano il modo di altri valori (ad esempio 1 == 1
)? e qual è la differenza tra assert.equal e assert.deepEqual?
Grande spiegazione di 'deepEqual()'; non è qualcosa che pensi nel confronto fino a quando non lo trovi. – brandonscript