Estoy usando Mocha para probar un pequeño módulo en mi aplicación Express.js. En este módulo, una de mis funciones devuelve una matriz. Quiero probar si la matriz es correcta o no para una entrada determinada. Lo estoy haciendo así:
suite('getWords', function(){
test("getWords should return list of numbers", function() {
var result = ['555', '867', '5309'];
assert.equal(result, getWords('555-867-5309'));
});
});
Cuando esto se ejecuta, aparece el siguiente error de afirmación:
AssertionError: ["555","867","5309"] == ["555","867","5309"]
Sin embargo, cuando cambio mi prueba a an assert.deepEqual
, la prueba pasa bien. Me preguntaba si era un caso de ==
vs ===
, pero si entro
[1,2,3] === [1,2,3]
en la línea de comando de node.js, todavía obtengo false.
¿Por qué las matrices no se comparan como otros valores (por ejemplo 1 == 1
)? y ¿cuál es la diferencia entre assert.equal y assert.deepEqual?
fuente
deepEqual()
; realmente no es algo en lo que piense en la comparación hasta que realmente lo encuentre.