无法比较 Immutable-js 对象
Failed to compare Immutable-js objects
我想了解为什么我的简单 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)- 它有效...
我做错了什么?我想我错过了一些愚蠢的东西...
谢谢,
阿米特。
尝试将两者与 Immutable.is() 进行比较:
let checkThis = Immutable.fromJS({
name: 'someOtherName',
age: 30,
friends: []
});
Immutable.is(newState, checkThis)//true
好吧,原来我犯了一个令人尴尬的错误——我导入了错误的 Immutable 模块...
我的代码是这样的:
import {fromJS} from 'Immutable';
而不是:
import {fromJS} from 'immutable';
注意大写 I.
哦好吧...
我想了解为什么我的简单 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)- 它有效...
我做错了什么?我想我错过了一些愚蠢的东西...
谢谢, 阿米特。
尝试将两者与 Immutable.is() 进行比较:
let checkThis = Immutable.fromJS({
name: 'someOtherName',
age: 30,
friends: []
});
Immutable.is(newState, checkThis)//true
好吧,原来我犯了一个令人尴尬的错误——我导入了错误的 Immutable 模块...
我的代码是这样的:
import {fromJS} from 'Immutable';
而不是:
import {fromJS} from 'immutable';
注意大写 I.
哦好吧...