Ich erstelle eine Middleware, um Ajax-Anfragen mit asynchronen Aktionen auszuführen. Die Middleware fängt die ursprüngliche Aktion ab, führt eine AJAX-Anforderung aus und setzt die ursprüngliche Aktion zusammen mit der Antwort von dispatch
wieder her.
Also, meine Komponente würde nur url
eine Aktion wie diese
Der Rest wird von der Middleware übernommen, wie in hier .
Meine Frage ist, was soll ich für Komponententests tun? Sollte ich das dispatch
selbst verspotten? oder sollte ich eine verspottete Middleware schreiben und die Aktionen mit der verspotteten Antwort weiterleiten?
Ich bin mir nicht sicher, welchen Ansatz ich nehmen soll. Ich habe mehrere Sachen ausprobiert, aber nichts von dem, was ich versucht habe, ergab für mich Sinn.
Irgendwelche Zeiger?
Ein viel einfacherer aktualisierter Ansatz wird hier beschrieben.
Du kannst es aber auch immer anders machen.
Wir haben jetzt einen Abschnitt zum Testen von asynchronen Aktions-Erstellern im offiziellen Bereich Dokumente.
Für Async-Action-Ersteller, die Redux Thunk oder andere Middleware verwenden, empfiehlt es sich, den Redux-Store für Tests vollständig zu testen. Sie können applyMiddleware()
immer noch mit einem Scheinspeicher verwenden, wie unten gezeigt. Sie können auch nock verwenden, um die HTTP-Anfragen nachzuahmen.
kann wie folgt getestet werden:
%Vor%Tags und Links javascript jasmine reactjs redux