Javascript 将两个对象数组与其值进行比较,单元测试
假设我有两个相似的数组,如何编写unittest来检查这些数组是否具有相同的值。这些值是相等的。我使用摩卡咖啡和酶进行单元测试。比较该值的最佳方法是什么Javascript 将两个对象数组与其值进行比较,单元测试,javascript,arrays,unit-testing,ecmascript-6,mocha.js,Javascript,Arrays,Unit Testing,Ecmascript 6,Mocha.js,假设我有两个相似的数组,如何编写unittest来检查这些数组是否具有相同的值。这些值是相等的。我使用摩卡咖啡和酶进行单元测试。比较该值的最佳方法是什么 const devices = [{ deviceType: 'Tag', deviceId: 1, name: 'Tag For Sending and alarm', version: '', location: 'Room1', lastAli
const devices = [{
deviceType: 'Tag',
deviceId: 1,
name: 'Tag For Sending and alarm',
version: '',
location: 'Room1',
lastAliveMessage: '',
deviceStatus: 'Active',
actions: 'offline',
},{
deviceType: 'Tag1',
deviceId: 2,
name: 'Tag For Sending and alarm2 ',
version: '',
location: 'Room2',
lastAliveMessage: '',
deviceStatus: 'Active',
actions: 'offline',
}]
const devices2 = [{
deviceType: 'Tag',
deviceId: 1,
name: 'Tag For Sending and alarm',
version: '',
location: 'Room1',
lastAliveMessage: '',
deviceStatus: 'Active',
actions: 'offline',
},{
deviceType: 'Tag1',
deviceId: 2,
name: 'Tag For Sending and alarm2 ',
version: '',
location: 'Room2',
lastAliveMessage: '',
deviceStatus: 'Active',
actions: 'offline',
}]
data.forEach(item => {
devices.forEach(device =>{
item.deviceId.should.be.equal(device.deviceId))
})
})
如果正在使用,则可以使用deep.equal
检查对象的数组是否相同。即使对象中的关键点顺序在两个关键点之间不相同,它也会起作用
expect(devices).to.deep.equal(devices2)
我会使用库中的
isEqual
函数。平等性在javascript中有点棘手,所以如果你不想与我的野兽较量,我会坚持或。你可以编写自己的函数,也可以使用几十个已经存在的断言库,可以与Mocha一起使用。或者,正如前面的评论中所建议的,您可以使用lodash之类的东西,这将有助于减少编写自定义代码所需的工作量。在不同的情况下,什么才是最好的,而你在问题中描述的情况并不是特别独特。我提到的任何选择都是先天的好。
expect(devices).to.deep.equal(devices2)