0
私のアプリケーションでは、ユーザーのナビゲーションを管理するために反応ルータを使用していますが、今はルートを変更する方法に固執しています。反応ルータベースのアプリケーションテスト
マイ<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);
});
});
それは既存の子になりますので、どのようにルートを変更することができます。あなたのテストで偽のブラウザの履歴を作成するために使用できるhistory
と呼ばれるモジュールがあり
:
'useRouterHistory'は本当に必要ですか?これは 'createMemoryHistory'で直接動作するように見えます。 – Wanderson
すべてのテストを実行した後、次のようなメッセージが表示されます。 '(node:21004)UnhandledPromiseRejectionWarning:未処理の約束拒否(拒否ID:2):TypeError:未定義の 'history'のプロパティを読み取れません。 – Wanderson
正直言って私は午前これらのテストの専門家でもなくても... useRouterHistoryなしであなたのために働くなら、それはさらに良い:-) – Nicole