4

私の単純な chai (chai-immutable を使用) テストが失敗する理由を理解しようとしています。

it('should work', () => {
   var currentState = Immutable.fromJS({
     name: 'myName',
     age: 20,
     friends: []
   });

   var newState = currentState.merge({
     name: 'someOtherName',
     age: 30
   });

   expect(newState).to.equal(Immutable.fromJS({
     name: 'someOtherName',
     age: 30,
     friends: []
   }));
});
  • マージの代わりに mergeDeep を使用している場合 - それでも機能しません
  • 期待値と実際の値の両方の .toJS() 評価を比較すると (lodash isEqual を使用) - 動作します...

私は何を間違っていますか?私は愚かな何かを見逃していると思います...

ありがとう、アミット。

4

2 に答える 2

5

2 つをImmutable.is()で比較してみてください。

let checkThis = Immutable.fromJS({
   name: 'someOtherName',
   age: 30,
   friends: []
 });
Immutable.is(newState, checkThis)//true
于 2015-12-30T07:55:14.147 に答える