【发布时间】:2012-10-24 21:15:05
【问题描述】:
我正在使用 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 命令行,我仍然得到错误。
为什么数组不比较其他值的方式(例如1 == 1)? assert.equal 和 assert.deepEqual 有什么区别?
【问题讨论】:
标签: javascript arrays testing mocha.js