无法获得酶的黄化功能成分

时间:2019-06-13 12:16:48

标签: reactjs jestjs enzyme

我有这个测试。

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'>而通过,但事实并非如此。
为了进行调试,我记录了找到的组件enter image description here

这表明我正在渲染

<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>

1 个答案:

答案 0 :(得分:0)

使用shallow渲染组件时,您不是在渲染组件子级。

因此,当您在 index.js 中浅化包含代码的组件时:

<Provider store={store}>
   <Router>
     <Route path="/" component={withTracker(Login)} />        
   </Router>
 </Provider>

您实际上不是在渲染Login组件。

如果要测试Login组件,则应浅化Login组件,而不是将路线与Login关联的组件。