Мое приложение использует реагирующий маршрутизатор для управления навигацией пользователя, и теперь мне нужно добавить модульные тесты. Я застрял в том, как изменить маршрут.тест на основе приложения на основе реакции-маршрутизатора
Мои <App />
есть (упрощенно):
class AppUser extends Component {
render() {
return (
<div className="layout">
{this.props.children}
</div>
);
}
}
class Initial extends Component {
render() {
return (
<div className="initial" />
);
}
}
export default class App extends Component {
render() {
let masterPageBase = (props) => (
<AppUser>
{props.children}
</AppUser>
);
let notFound =() => (
<div>
<h1>Not found!</h1>
</div>
);
<Router history={browserHistory}>
<Route path="/" component={masterPageBase}>
<IndexRoute component={Initial} />
<Route path="*" component={notFound} />
</Route>
</Router>
}
}
И мой тест:
describe('<App />',() => {
it('user',() => {
const wrapper = shallow(<App />);
// FIXME This fails
expect(wrapper.find('AppUser').length).toEqual(1);
});
});
Как я могу изменить маршрут таким образом, что будет существующий ребенок.
Действительно ли нужна 'useRouterHistory'? Он выглядит так же, как и с 'createMemoryHistory'. – Wanderson
После всех тестов я получаю много сообщений вроде этого: '(node: 21004) UnhandledPromiseRejectionWarning: Отказ от необработанного обещания (id отторжения: 2): TypeError: Невозможно прочитать свойство 'history' of undefined' – Wanderson
Честно говоря, я не эксперт в этих тестах ... так что если он работает для вас без использования RouterHistory, то это еще лучше :-) – Nicole