auf Speicher aus dem Kontext abhängt Ich habe Probleme beim Einrichten von Tests für eine Komponente, die auf einem redux Geschäft verlässt sich aus dem Kontext überliefert ...Testen einer Komponente, die
Meine app hat eine Wurzelkomponente, die ihre Kinder gibt die redux Speicher als Kontext:
import ApplicationStore from './app-store.js'
class Root extends Component {
getChildContext() {
return { store: ApplicationStore }
}
render(){...}
}
Root.childContextTypes = {
store: PropTypes.object,
};
ich habe eine Komponente, die auf dem Speicher (überliefert von Kontext) abhängt:
class List extends Component {
render(){
const items = this.context.store.getState();
return items.map((_, i) => (
<div key={i}>{_.name}</div>
));
}
}
List.contextTypes = {
store: PropTypes.object,
};
Also meine Frage ist: wie ich „injizieren“ die st ore Objekt in den Kontext meiner Komponente? Würde ich unmock(./app-store.js)
haben? Außerdem, wie kann ich den Laden mit ein paar Fixtures füllen?
Danke!
Danke, @ Nicole. Ich habe das durchgelesen, als ich die App geschrieben habe und beschlossen habe, den Store als Kontext zu übergeben, aber ich habe es mir nicht überlegt. –
Wenn Sie React with Redux verwenden, sollten Sie außerdem die offizielle React Redux-Bibliothek verwenden, um Ihre Komponenten mit dem Store zu verbinden (https://github.com/reactjs/react-redux). Es verwaltet das Store-Abonnement für Sie. Von dort aus können Sie sich darauf konzentrieren, nur Ihre "normale" Komponente zu testen, die nur Requisiten und die von Ihnen geschriebenen "mapStateToProps" -Funktionen verwendet, und sich nicht darum kümmern zu müssen, irgendetwas mit einem Geschäft zu testen. Siehe [Verwendung mit Reagieren] (http://redux.js.org/docs/basics/UsageWithReact.html) und [Writing Tests] (http://redux.js.org/docs/recipes/WritingTests.html) Dokumentseiten. – markerikson
Danke, @markerikson. Ich landete meine Wurzel-Komponente mit ' ' von react-redux. –