【发布时间】:2018-04-20 20:07:47
【问题描述】:
我是测试 Javascript 的新手,所以这可能是完全显而易见的。我正在使用框架 Mocha 和断言库 Chai 来测试 Javascript 工具。
我有几个函数可以输出一个包含多个元素的数组。如何使用 Chai 进行测试?
这是一个例子:
var chai = require('chai');
var assert = chai.assert;
var expect = chai.expect;
// define an array
var Arr = [3, 4, 5, 6, 10];
console.log(Arr.slice(1, 3))
// outputs [4, 5]
// this will fail
describe('subsetting an array', function() {
it('array subset', function() {
assert.equal(Arr.slice(1, 3), [4, 5])
});
});
所以这个测试失败并出现以下错误:
AssertionError: expected [ 4, 5 ] to equal [ 4, 5 ]
(1) 为什么assert.equal() 会失败?这些都是“数组”类型的数据结构
(2) 应该如何用 Chai 正确测试这一点?
【问题讨论】:
-
我认为您需要使用 .deepEqual chaijs.com/api/assert/#method_deepequal 来检查深度相等性
标签: javascript arrays unit-testing mocha.js chai