Разница между assert.equal и assert.deepEqual в тестировании Javascript с помощью Mocha?
Я использую Mocha для тестирования небольшого модуля в моем приложении Express.js. В этом модуле одна из моих функций возвращает массив. Я хочу проверить, является ли массив правильным для данного ввода. Я делаю так, как это:
suite('getWords', function(){
test("getWords should return list of numbers", function() {
var result = ['555', '867', '5309'];
assert.equal(result, getWords('555-867-5309'));
});
});
Когда это выполняется, я получаю следующую ошибку утверждения:
AssertionError: ["555","867","5309"] == ["555","867","5309"]
Тем не менее, когда я меняю свой тест наassert.deepEqual
Тест проходит нормально. Мне было интересно, если это был случай==
против===
, но если я войду
[1,2,3] === [1,2,3]
в командной строке node.js я все еще получаю false.
Почему массивы не сравниваются так, как другие значения (например,1 == 1
)? и в чем разница между assert.equal и assert.deepEqual?