2017-09-18 12 views
0

2つの同様の配列があるとします。これらの配列が同じ値を持つかどうかをunittestで調べるにはどうしたらいいですか?そしてこれらの値は等しい。私はユニットテストのためにモカと酵素を使います。この値を比較する最良の方法は何ですか?オブジェクトの2つの配列をその値であるユニットテストと比較する

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)) 
       }) 
      }) 
+0

私は[lodash](https://lodash.com/docs/4.17.4#isEqual)ライブラリから 'isEqual'機能を使用します。平等はjavascriptではちょっと難しいので、あなたはその獣を服用したくないと思うなら、私は[lodash](https://lodash.com/docs/4.17.4#isEqual)または[underscore](http ://underscorejs.org/#isEqual)。 – Olian04

+0

独自の関数を記述することもできますし、Mochaで使用できる数多くの既存のアサーションライブラリを使用することもできます。あるいは、前のコメントに示唆されているように、カスタムコードを書くのに必要な作業を減らすのに役立つロダッシュのようなものを使うことができます。最高のものは実際に状況によって異なります。あなたがあなたの質問で述べる状況は特に特徴的ではありません。私が言及したオプションのいずれかが*先験*良いです。 – Louis

答えて

0
devices.forEach((device, index) => { 
    data[index].deviceType.props.children.should.be.equal(device.deviceType) 
    data[index].deviceId.props.children.should.be.equal(device.deviceId) 
     }) 
関連する問題