Не в состоянии получить компонент в функции фермента - PullRequest
0 голосов
/ 13 июня 2019

У меня есть этот тест.

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 голосов
/ 14 июня 2019

Когда вы используете неглубокий для визуализации компонента, вы не визуализируете дочерние компоненты.

Таким образом, когда вы визуализируете компонент в index.js ,содержит код:

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

Вы фактически не рендерите компонент Login.

Если вы хотите протестировать компонент Login, вы должны отрисовать компонент Loginа не компонент, с которым вы связываете маршрут к Login.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...