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

时间:2017-03-10 17:33:07

标签: automated-tests jestjs reselect

根据问题的标题。

  

... / selector.js

const makeSelectUserData = () => createSelector(
  selectProfile,
  (profileState) => profileState.get('userData')
);
  

... /测试/ selectors.test.js

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);
  });
  

console.log ...打印:

Map { "firstName": "X", "lastName": "Y", "gender": "Male", "email": "a@b.cd" }

因此,为什么,但我不明白为什么其他选择器用户是一个字符串(例如)只是工作而选择器返回一个字符串应该。

奇怪的是,选择器实际上表现正确,但测试没有。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

所有必要的是偶然期待(......

expect(userDataSelector(mockedState).toJS()).toEqual(user);

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

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