使用 react-testing-library 使用自定义渲染进行重新渲染

露丝

我正在使用 react-testing-library 并且我有一个自定义渲染:

const customRender = (node, ...options) => {
  return render(
    <ThemeProvider theme={Theme}>
      <MemoryRouter>{node}</MemoryRouter>
    </ThemeProvider>,
    ...options
  );
};

我可以render在我的测试中成功地将它用于 a但不能用于 a rerender

test("shows content once data has loaded", () => {
  const { queryByTestId, rerender, debug } = render(
    <ConnectAccount
      currentUser={{
        loading: true
      }}
    />
  );

  expect(queryByTestId("content")).toBeNull();

  rerender(
    <ConnectAccount
      currentUser={{
        user: {
          name: "Test User"
        }
      }}
    />
  );

  debug();
});

我得到一个错误TypeError: Cannot read property 'black' of undefinedrerender有没有办法让重新渲染使用自定义渲染,这样我就不必将每个重新渲染都包装在ThemeProvider.

乔治·波尔瓦拉 - Gpx

您需要重新定义该rerender方法。这应该有效:

const customRender = (node, options) => {
  const rendered = render(
    <ThemeProvider theme={Theme}>
      <MemoryRouter>{node}</MemoryRouter>
    </ThemeProvider>,
    options);

  return {
    ...rendered,
    rerender: (ui, options) =>
      customRender(ui, {container: rendered.container, ...options}),
    }
  };

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用react-testing-library测试组件是否使用正确的道具进行渲染

使用 react-hooks-testing-library 进行测试时会更新自定义钩子的当前结果

使用react-testing-library测试mxGraph

使用react-hooks-testing-library测试自定义钩子会引发错误

如何使用react-testing-library在自定义组件上触发onChange事件?

在内部与自定义查询一起使用React Testing Library

使用自定义拖动层反应 dnd 太多重新渲染,react.memo

React-Native FlatList不使用自定义renderItem重新渲染

在什么情况下使用react自定义钩子时它将重新渲染

使用react-testing-library进行测试卸载

如何使用react-testing-library测试react-select

使用react-testing-library测试react-hotkeys

使用React,Jest,React-Testing-Library测试失败的案例

使用react.js渲染自定义html标签

React-Testing-Library-使用Redux和Router包装组件

使用@ testing-library / react测试Ag-grid

使用React-Testing-Library运行Jest测试时出错

使用TypeScript的React Testing Library:设置输入值

react-testing-library为什么使用测试ID

如何使用 react-testing-library 测试 DOM 节点的外观

无法让MemoryRouter与@ testing-library / react一起使用

使用 react-testing-library 选择子组件

使用 jest 和 react-testing-library 测试连接的组件

React-Query - 使用 react-testing-library 进行单元测试

react-testing-library 不会渲染 VirtualTable 的所有部分

在 beforeAll/beforeEvery 中渲染相同的组件:testing-library/react

如何使用react-testing-library对进行异步数据加载的组件进行快照测试?

如何使用react-testing-library将数组作为道具进行单元测试

使用TypeScript为Redux,路由器和动态模块进行React-Testing-Library设置