我有一个组件SampleComponent,它安装了另一个"连接组件"(即container).当我try 通过mounting测试SampleComponent时(因为我需要componentDidMount),我得到了错误:

不变冲突:在上下文或上下文中找不到"存储"

最好的测试方法是什么?

推荐答案

我基本上是把我的reduxstore (和Providerstore )带进来,并将其包装在一个实用组件中,如下所示:

export const CustomProvider = ({ children }) => {
  return (
    <Provider store={store}>
      {children}
    </Provider>
  );
};

然后,我 Select SampleComponent并对其进行测试:

it('contains <ChildComponent/> Component', () => {
  const wrapper = mount(
    <CustomProvider>
      <SampleComponent {...defaultProps} />
    </CustomProvider>
  );
  expect(wrapper.find(ChildComponent)).to.have.length(1);
});

Reactjs相关问答推荐

运行 node server.js会导致以下错误:Route.post()需要回调函数,但在Route.&处得到了[对象Undefined] lt;计算>

Reaction上下文值无法传递给其他组件

如何使用.Aggregate从多个集合中获取数据,包括使用Mongoose+NextJS的SUM值

在 React 中,如何在指向同一组件的路由中拥有未定义数量的多个动态路径段?

通过createRoot创建的React元素无法调用Provider值

如何在 React Hook Form 中使用嵌套对象处理错误验证消息

Spring Boot + React + MySQL应用的架构层面有哪些?

无法使axiosmockadapter正常工作

无法在react 中向表中添加行

如何在使用 React Router v6 将当前页面的状态传递给上一页的同时导航到上一页?

有没有办法在用户离开页面时防止输入模糊?

Primereact 的日历组件在每个月 12 日之后使用非唯一键生成

带有 webpack 错误多个文件匹配路由名称的 Expo-router.无法Bundle 或部署应用程序

docker:来 automorphic 护进程的错误响应:未指定命令.的原因是什么?

在 redux 中分派到另一个减少时状态值不会改变

vdom 最终更新了 dom(在比较之后)任何 dom 更改实际上应该触发整个树的重绘和回流,那么 vdom 有什么用?

为什么此代码中的 useState 不更新(文本更新但 id 不更新)?

设置 Material UI 表格默认排序

当页面重新加载react 路由导航到第一页 v6

你如何使用 refs 访问 React 中映射子项的值?