Как использовать jest и энзим для проверки разделения кода (разбиения кода на уровне маршрутов с использованием реагирующей загрузки) - PullRequest
1 голос
/ 08 июля 2019

У меня есть проект React, где я использую react-loadable для разделения кода на уровне маршрута.Я также использую Redux для управления магазином приложения.

Я ищу способ использования Jest & Enzyme для проверки своих маршрутов (для маршрутов, которые я использую connected-react-router).и react-loadable для кода разделения).

  • Пример маршрута ниже:

    import Loadable from 'react-loadable';
    const AsyncExampleScreen = Loadable({
        loader: () => import("ExampleScreen"),
        loading: LoadingComponent
    });
    <Route 
        exact 
        path='/' 
        component={AsyncExampleScreen} 
    />
    
  • Мой index.js:

    import React from 'react';
    import ReactDOM from 'react-dom';
    import * as serviceWorker from './serviceWorker';
    import { Provider } from 'react-redux';
    import configureStore, { history } from 'store';
    import { ConnectedRouter } from 'connected-react-router';
    import App from 'App';
    const STORE = configureStore();
    const render = () => {
         ReactDOM.render(
            <Provider store={STORE}>
               <ConnectedRouter history={history}>
                  <App />
               </ConnectedRouter>
            </Provider>,
            document.getElementById('root')
        );
    }
    render();`
    
  • Пример теста (в случае, если я не использую react-loadable для разделения на уровне маршрута)

    import React from 'react';
    import { mount } from 'enzyme';
    import { MemoryRouter } from 'react-router';
    import { Provider } from 'react-redux';
    import configureStore, { history } from 'store';
    import App from 'App';
    import Example from 'ExampleScreen';
    const STORE = configureStore();
    describe('routes using memory router', () => {
        it('should show Home component for route /', () => {
          const component = mount( <MemoryRouter initialEntries = {['/']} >
            <Provider store={STORE}>
                <App />
            </Provider>
         </MemoryRouter>
        );
        expect(component.find(Example)).toHaveLength(1);
        })
    })
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...