ich eine einfache Komponente, die reagieren-Router verwendet (ich bin mir bewusst, das ist die Alpha-Version):Testing Komponente mit reagieren-Router v4, Jest und Enzyme
{props.app && props.app.health &&
<Match exactly pattern="/" component={HomeLogin} />
}
Die docs Verpackung empfiehlt <MemoryRouter />
zu Bereitstellen von Kontext für Komponenten beim Testen.
jedoch mit Jest/Enzym bin ich shallow()
nicht in der Lage machen - ich muss Enzyme des mount()
oder render()
, was zu Problemen führt, weil HomeLogin
eine angeschlossene Komponente ist - ich möchte in der Lage zu testen, dass meine Komponente die rendert Richtig, aber nicht Testen Sie die Komponente gerendert darin.
Mein Test:
it('Renders based upon matched route',() => {
let props = {
app: { health: true },
};
const component = render(
<Provider store={store}>
<MemoryRouter location="/">
<Jumbotron {...props} />
</MemoryRouter>
</Provider>
);
expect(toJson(component)).toMatchSnapshot();
});
Wie kann ich die Ausgabe dieser Komponente testen auf der Strecke basiert, ohne die redux Speicher zu schaffen, oder machen mit flachem?
Update: Wenn ich versuche, shallow()
zu verwenden, rendert der Snapshot keine Ausgabe.
Haben Sie die Lösung gefunden? – ridermansb