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 而不是 merge - 它仍然不起作用
  • 如果我比较预期值和实际值的 .toJS() 评估(使用 lodash isEqual) - 它可以工作......

我究竟做错了什么?我想我错过了一些愚蠢的东西......

谢谢,阿米特。

4

2 回答 2

5

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

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

Well, it turns out I made an embarrassing mistake - I imported the wrong Immutable module...

My code looked like this:

import {fromJS} from 'Immutable';

Instead of:

import {fromJS} from 'immutable';

Notice the capital I.

Oh well...

于 2015-12-30T19:51:49.943 回答