无法比较Immutable-js对象

时间:2015-12-29 19:48:11

标签: javascript chai immutable.js chai-immutable

我试图理解为什么我的简单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而不是merge - 它仍然无法正常工作
  • 如果我比较.toJS()预期值和实际值的平均值(使用lodash isEqual) - 它有效......

我做错了什么?我想我错过了一些愚蠢的事......

谢谢, 艾米特。

2 个答案:

答案 0 :(得分:5)

尝试将两者与Immutable.is()进行比较:

let checkThis = Immutable.fromJS({
   name: 'someOtherName',
   age: 30,
   friends: []
 });
Immutable.is(newState, checkThis)//true

答案 1 :(得分:2)

好吧,事实证明我犯了一个令人尴尬的错误 - 我输入了错误的不可变模块......

我的代码看起来像这样:

import {fromJS} from 'Immutable';

而不是:

import {fromJS} from 'immutable';

注意资本I。

哦,好吧......