我正在使用摩卡来测试我的Express.js应用程序中的一个小模块。在这个模块中,我的一个函数返回一个数组。我想测试一个给定的输入数组是否正确。我这样做是这样的:用Mocha测试Javascript中assert.equal和assert.deepEqual的区别?
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的命令行,我仍然得到错误。
为什么数组不能比较其他值的方式(例如1 == 1
)? assert.equal和assert.deepEqual有什么区别?
'deepEqual()'的很好的解释;在比较直到你真正遇到它之前,你并不是真正想到的东西。 – brandonscript