javascript - TypeError : routingState. 等于不是函数 | Jest 测试用例

标签 javascript reactjs react-redux jestjs enzyme

这是我的selector.js 文件:-

const makeSelectLocationState = () => {
  let prevRoutingState;
  let prevRoutingStateJS;

  return (state) => {
    const routingState = state.get('route'); // or state.route

    if (!routingState.equals(prevRoutingState)) {
      prevRoutingState = routingState;
      prevRoutingStateJS = routingState.toJS();
    }

    return prevRoutingStateJS;
  };
};

以及我编写的以下测试用例:-

it('makeSelectLocationState function testing', () => {
    const selectLocationState = makeSelectLocationState();
    const mockedState = fromJS({
      route: '',
    });
    expect(selectLocationState(mockedState)).toEqual('');
  });

使用 jest 运行测试用例时出现以下错误:-

TypeError: routingState.equals is not a function

最佳答案

问题出在这里:

const routingState = state.get('route'); 

感觉您没有获得routingState,可能未定义,因此您将收到上述错误消息。因此请检查routingState的日期。

并在测试文件中,将mockedState传递给selectLocationState

selectLocationState(mockedState)

但是,makeSelectLocationState函数没有属性。也许更改为:

const makeSelectLocationState = (state) => {}

关于javascript - TypeError : routingState. 等于不是函数 | Jest 测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53274746/

相关文章:

javascript - 检测文本是否为粗体

javascript - 只要有子组件,React 功能组件是否总是会重新渲染?

reactjs - 我正在尝试使用 Tauri 1.2、Rust、React 和 Typescript 创建一个新窗口。我面临一些问题

reactjs - 无法读取 Redux thunk 操作上未定义的属性 'then'

javascript - 添加具有 onkeyup 事件并在其他文本框上显示值的文本框

reactjs - React router No Match 404 部署时不工作?

javascript - 无法使用点或方括号表示法来访问 json/javascript 对象中的键或数据,该对象在获取后保存到状态

javascript - 语义-ui-react语法错误: Adjacent JSX elements must be wrapped in an enclosing tag

javascript - React Router 链接不工作

javascript - 清除倒计时器