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