期望数组是数组
Expect array to be array
编写一些测试,运行 遇到错误。阵列对我来说似乎是一样的,但显然不是。这是我得到的错误。知道如何修复它吗?
Expected Array [ 'A2T1511300361', 'A2T1511300362' ] to be Array [ 'A2T1511300361', 'A2T1511300362' ]
test.js
var should = require('should'),
io = require('socket.io-client'),
path = require('path'),
express = require(path.resolve('./config/lib/express')),
mongoose = require('mongoose'),
sinon = require('sinon')
...
client.on('printerList', function(list){
var tempArray = [];
tempArray.push('A2T1511300361');
tempArray.push('A2T1511300362');
console.log(tempArray);
list.should.equal(tempArray);
});
您不能以您现在的方式直接测试阵列质量。 [1,2]
和 [1,2]
可能有相同的元素,但它们是 不同的 数组。更正式地说:
[ ] !== [ ]
[ ] != [ ]
您正在尝试测试 深度 平等。为此,您需要检查每个数组元素。例如,lodash 中的许多方法可以帮助您解决这个问题。例如
// this uses ES6 syntax
const _ = require('lodash')
const arr1 = [1, 2]
const arr2 = [1, 2]
assert.equal(_.intersection(arr1, arr2).length, arr1.length))
assert.equal(_.intersection(arr1, arr2).length, arr2.length))
除了测试深度相等性的 . Should.js also provides .eql and .deepEqual 断言:
var expectedArray = [1, 2, 3];
var returnedArray = [1, 2, 3];
returnedArray.should.deepEqual(expectedArray);
编写一些测试,运行 遇到错误。阵列对我来说似乎是一样的,但显然不是。这是我得到的错误。知道如何修复它吗?
Expected Array [ 'A2T1511300361', 'A2T1511300362' ] to be Array [ 'A2T1511300361', 'A2T1511300362' ]
test.js
var should = require('should'),
io = require('socket.io-client'),
path = require('path'),
express = require(path.resolve('./config/lib/express')),
mongoose = require('mongoose'),
sinon = require('sinon')
...
client.on('printerList', function(list){
var tempArray = [];
tempArray.push('A2T1511300361');
tempArray.push('A2T1511300362');
console.log(tempArray);
list.should.equal(tempArray);
});
您不能以您现在的方式直接测试阵列质量。 [1,2]
和 [1,2]
可能有相同的元素,但它们是 不同的 数组。更正式地说:
[ ] !== [ ]
[ ] != [ ]
您正在尝试测试 深度 平等。为此,您需要检查每个数组元素。例如,lodash 中的许多方法可以帮助您解决这个问题。例如
// this uses ES6 syntax
const _ = require('lodash')
const arr1 = [1, 2]
const arr2 = [1, 2]
assert.equal(_.intersection(arr1, arr2).length, arr1.length))
assert.equal(_.intersection(arr1, arr2).length, arr2.length))
除了测试深度相等性的
var expectedArray = [1, 2, 3];
var returnedArray = [1, 2, 3];
returnedArray.should.deepEqual(expectedArray);