我正在使用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
,测试可以顺利通过。我想知道是否是==
vs 的情况===
,但如果我输入
[1,2,3] === [1,2,3]
进入node.js命令行,我仍然会得到false。
为什么数组不比较其他值的方式(例如1 == 1
)?assert.equal和assert.deepEqual有什么区别?
deepEqual()
; 在进行比较之前,您并不是真正想比较的东西。