Как прикрыть анонимную функцию, используемую в реакции маршрутизатора, шуткой? - PullRequest
0 голосов
/ 07 февраля 2019

Как проверить анонимную функцию, используемую для предоставления компонента свойству компонента?Если мы не можем протестировать анонимную функцию с помощью jest, то какой должен быть подход?

<BrowserRouter>
    <Switch>
        <Route path={routerPath1} component={props => <MyComponent1 {...props} customProperty={BlaBlaBla} />
        <Route path={routerPath2} component={props => <MyComponent2 {...props} customProperty={BlaBlaBla} />
    </Switch>
</BrowserRouter>

component={props => <MyComponent2 {...props} customProperty={BlaBlaBla} /> is not accessible by test.

1 Ответ

0 голосов
/ 07 февраля 2019

Прежде всего, BrowserRouter не должен использоваться в модульных тестах.Иерархия компонентов должна позволять вместо этого использовать MemoryRouter.Затем компоненты маршрута могут быть проверены путем изменения маршрутов.

В качестве альтернативы, анонимная функция может быть достигнута и протестирована отдельно:

const RouteComponent = wrapper.find(Route).at(0).props().component;
const routeComponentWrapper = shallow(<RouteComponent/>);
...

Проверяемость можно улучшить, высушив код.Поскольку компоненты в обоих маршрутах похожи, они могут быть созданы одним компонентом более высокого порядка, который добавляет customProperty={BlaBlaBla} prop и может быть отслежен в тестах.

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