我有这个测试。
import React from 'react';
import { shallow } from 'enzyme';
import Login from './index';
describe('Login', () => {
it('should render correctly in "debug" mode', () => {
component = shallow(<Login />);
console.log(component.debug());
const element = component.find('.logoImg');
expect(element.length).toBe(1);
});
});
我希望这会随着我的<img className='logoImg'>
而通过,但事实并非如此。
为了进行调试,我记录了找到的组件
这表明我正在渲染
<Route>
[function children]
</Route>
我是新来的。我如何渲染组件。请帮忙。
index.js
<Provider store={store}>
<Router>
<Switch>
<Route
path="/"
exact
component={compose(
withAuth,
withTracker,
)(SelectionPage)}
/>
<Route
path="/refill"
exact
component={compose(
withAuth,
withTracker,
)(Refill)}
/>
<Route path="/login" component={withTracker(Login)} />
<Route
path="/"
component={compose(
withAuth,
withTracker,
)(SelectionPage)}
/>
</Switch>
</Router>
</Provider>
我将其作为index.js。 修改 我尝试通过更改index.js来获得相同的结果。
<Provider store={store}>
<Router>
<Route path="/" component={withTracker(Login)} />
</Router>
</Provider>
答案 0 :(得分:0)
使用shallow渲染组件时,您不是在渲染组件子级。
因此,当您在 index.js 中浅化包含代码的组件时:
<Provider store={store}>
<Router>
<Route path="/" component={withTracker(Login)} />
</Router>
</Provider>
您实际上不是在渲染Login
组件。
如果要测试Login
组件,则应浅化Login
组件,而不是将路线与Login
关联的组件。