使用React Testing Library,如何用特定的路线包装组件?

时间:2019-12-09 17:22:36

标签: react-router react-testing-library

我看了几个例子,试图让我的React Testing Library测试来模拟一个特定的URL,然后我的React组件将其与useParams一起使用。

例如,这是有关该主题的一篇“官方”文章:https://react-testing-examples.com/jest-rtl/react-router/

所以我尝试了这段代码:

  function renderDom(component) {
    const companyId = 226;
    const userId = 123;
    // console.log(component, companyId, userId);
    return {
      ...render(
        <SessionProvider>
          <AppProvider>
            <MemoryRouter initialEntries={[`/users/company/${companyId}/user-list/${userId}`]} initialIndex={0}>
              <Route path='/users/company/:companyId/user-list/:userId'>
                {component}
              </Route>
            </MemoryRouter>
          </AppProvider>
        </SessionProvider>
      )
    };
  };

但是没有用。当我使用此代码运行测试时,组件代码中的控制台日志实际上并未运行。

因此,我正在寻找一种行之有效的方式来包装我的组件,使其模拟URL。

0 个答案:

没有答案