最佳答案
我正在使用 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.equals 和 assert.deep equals 之间的区别是什么?