Automated tests 为什么选择器(重新选择库)上的此测试失败?

Automated tests 为什么选择器(重新选择库)上的此测试失败?,automated-tests,jestjs,reselect,Automated Tests,Jestjs,Reselect,根据问题的标题 …/selector.js …/tests/selectors.test.js console.log。。。印刷品: 这就是为什么,但我不明白为什么其他选择器在用户是字符串的情况下(例如)只工作,而选择器返回它应该返回的字符串 奇怪的是,选择器的行为实际上是正确的,但测试却没有。我找到了解决方案 所需要的只是偶然的期望( 到 因为fromJS()将一个对象转换为一个不可变的对象,该对象仍然由选择器返回 其他带有本机(原始)值的测试仍然有效,因为不可变不会改变它们 const ma

根据问题的标题

…/selector.js

…/tests/selectors.test.js

console.log。。。印刷品:

这就是为什么,但我不明白为什么其他选择器在用户是字符串的情况下(例如)只工作,而选择器返回它应该返回的字符串

奇怪的是,选择器的行为实际上是正确的,但测试却没有。

我找到了解决方案

所需要的只是偶然的期望(

因为fromJS()将一个对象转换为一个不可变的对象,该对象仍然由选择器返回

其他带有本机(原始)值的测试仍然有效,因为不可变不会改变它们

const makeSelectUserData = () => createSelector(
  selectProfile,
  (profileState) => profileState.get('userData')
);
it('should select the current user', () => {
    const mockedState = fromJS({
      profile: {
        userData: {
          firstName: "X",
          lastName: "Y",
          gender: "Male",
          email: "a@b.cd",
        },
      },
    });
    console.log(userDataSelector(mockedState));
    expect(userDataSelector(mockedState)).toEqual(user);
  });
Map { "firstName": "X", "lastName": "Y", "gender": "Male", "email": "a@b.cd" }
expect(userDataSelector(mockedState).toJS()).toEqual(user);