【问题标题】:wrap the root component in a <Provider>,or pass a custom React context provider to <Provider> and the corresponding React context consumer to Connect将根组件包装在 <Provider> 中,或者将自定义的 React 上下文提供者传递给 <Provider> 并将相应的 React 上下文使用者传递给 Connect
【发布时间】:2021-10-19 15:52:15
【问题描述】:

我想通过 unit test 测试组件,我不知道如何render 组件,它会出错。我只能使用“React-testing-library

错误:在“Connect(BaseSignUp)”的上下文中找不到“store”。要么将根组件包装在 a 中,要么将自定义的 React 上下文提供者传递给连接选项中的 Connect(BaseSignUp),并将相应的 React 上下文使用者传递给 Connect(BaseSignUp)。

【问题讨论】:

    标签: reactjs unit-testing redux react-testing-library


    【解决方案1】:

    当你的组件使用你的 Redux 状态时,你需要用 Provider 包装它。

    比如这样

    
      const Wrapper = ({ children }) => (
        // you could just use your normal Redux store or create one just for the test
        <Provider store={store}>{children}</Provider>
      );
      render(<BaseSignup />, { wrapper: Wrapper });
    

    【讨论】:

    • 我又出错了,error==> TypeError: Cannot read property 'getState' of undefined
    • 你还必须在其中传递一个store
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 2018-02-03
    • 2019-08-14
    • 2018-03-05
    相关资源
    最近更新 更多