Option 1) Sie können die Containerkomponente mit der Provider-Komponente von React-Redux innerhalb Ihres Tests umbrechen. Bei diesem Ansatz referenzieren Sie den Store, übergeben ihn an den Provider und komponieren Ihre zu testende Komponente darin. Der Vorteil dieses Ansatzes besteht darin, dass Sie tatsächlich einen benutzerdefinierten Speicher für den Test erstellen können. Dieser Ansatz ist nützlich, wenn Sie die Redux-bezogenen Teile Ihrer Komponente testen möchten. Option 2) Vielleicht interessiert es Sie nicht, die Redux-Teile zu testen. Wenn Sie nur das Rendering und das lokale Statusverhalten der Komponente testen möchten, können Sie einfach einen benannten Export für die nicht verbundene normale Version Ihrer Komponente hinzufügen. Und nur um zu verdeutlichen, wenn Sie das "export" -Schlüsselwort zu Ihrer Klasse hinzufügen, sagen Sie im Grunde, dass die Klasse jetzt auf zwei Arten mit geschweiften Klammern {} importiert werden kann oder nicht. Beispiel:
export class MyComponent extends React.Component{ render(){ ... }}
...
export default connect(mapStateToProps, mapDispatchToProps)(MyComponent)
später auf der Testdatei:
import MyComponent from 'your-path/MyComponent'; // it needs a store because you use "default export" with connect
import {MyComponent} from 'your-path/MyComponent'; // don't need store because you use "export" on top of your class.
Ich hoffe, hilft da draußen jemand.
Ich sehe Sie verwenden mount, wenn ich versuche, '' mount'' durch '' shallo'' zu ersetzen bekomme ich einen Fehler. Ist dir das auch schon begegnet? – Mehrdad
Während diese Antwort in einigen Fällen funktioniert, funktioniert sie nicht, wenn Sie den Lebenszyklus Ihrer Komponente testen müssen. Wenn Sie zum Beispiel 'wrapper.setProps()' aufrufen, wird 'componentWillReceiveProps()' auf 'SampleComponent' nicht ausgelöst. –