Jestjs jest酶路由如何使用路由测试组件?

Jestjs jest酶路由如何使用路由测试组件?,jestjs,enzyme,react-router-v4,Jestjs,Enzyme,React Router V4,我有一个App组件,其中包含主要路线定义: export default function App() { return ( <div> <MuiThemeProvider theme={createMuiTheme(theme)}> <Route path={`${URL_PREFIX}/:module?/:id?`} render={() => (<div>

我有一个
App
组件,其中包含主要路线定义:

export default function App() {
  return (
    <div>
      <MuiThemeProvider theme={createMuiTheme(theme)}>
        <Route
          path={`${URL_PREFIX}/:module?/:id?`}
          render={() => (<div>
            <MapContainer />
            <NavigationBox />
            <FeedbackMessage />
          </div>)}
        />
        <Switch>
          <Route
            exact
            path={URL_PREFIX}
            render={() => (
              <Redirect to={`${URL_PREFIX}/restaurants`} />
            )}
          />
        </Switch>
      </MuiThemeProvider>
    </div>
  );
}
到目前为止一切正常

我还尝试为
App
编写测试,但这部分根本不起作用。这是我的测试文件:

describe('<App />', () => {
  describe('should render other components on proper route', () => {
    let renderedComponent;

    beforeEach(() => {
      renderedComponent = shallow(
        <MemoryRouter initialEntries={[URL_PREFIX]} initialIndex={0}><App /></MemoryRouter>
      ).dive().dive();
    });

    it('should render <MapContainer />', () => {
      expect(renderedComponent.find(MapContainer).length).toBe(1);
    });
    it('should render <NavigationBox />', () => {
      expect(renderedComponent.find(NavigationBox).length).toBe(1);
    });
    it('should render <FeedbackMessage />', () => {
      expect(renderedComponent.find(FeedbackMessage).length).toBe(1);
    });
  });
});
如果只有2次潜水或1次潜水,则表示预期值(1)不同于收到的值(0),因此测试失败

如果我尝试使用它抱怨的
render
mount
,则该存储是预期的,但其值未定义

有没有办法测试我的组件是否在所选路径上渲染

describe('<App />', () => {
  describe('should render other components on proper route', () => {
    let renderedComponent;

    beforeEach(() => {
      renderedComponent = shallow(
        <MemoryRouter initialEntries={[URL_PREFIX]} initialIndex={0}><App /></MemoryRouter>
      ).dive().dive();
    });

    it('should render <MapContainer />', () => {
      expect(renderedComponent.find(MapContainer).length).toBe(1);
    });
    it('should render <NavigationBox />', () => {
      expect(renderedComponent.find(NavigationBox).length).toBe(1);
    });
    it('should render <FeedbackMessage />', () => {
      expect(renderedComponent.find(FeedbackMessage).length).toBe(1);
    });
  });
});
TypeError: ShallowWrapper::dive() can not be called on Host Components