React Enzyme - Testen Sie den 'componentDidMount' Async-Aufruf

8

alle.

Ich habe seltsame Probleme beim Testen einer Statusaktualisierung nach einem asynchronen Aufruf in componentDidMount .

Hier ist mein Komponentencode:

%Vor%

Nun, was ich in meinen Testdateien mache (ich habe ein Setup bestehend aus Mocha + Chai + Sinon, alles funktioniert):

%Vor%

Der Status wird nicht aktualisiert, obwohl ich update() für den Wrapper anrufe. Die Länge ist immer noch 0. Fehle ich hier etwas? Muss ich die Serverantwort auf eine andere Art verspotten?

Thnx für die Hilfe!

    
r31gN_ 11.07.2016, 13:27
quelle

2 Antworten

9

Sie können den Abruf der Benutzerliste von der reaktiven Komponente abstrahieren, indem Sie eine Funktion übergeben, die anstelle von

eine Promise zurückgibt %Vor%

Ersetzen Sie es durch

%Vor%

Und innerhalb deines Tests mock das getUsers Funktion:

%Vor%

Beachten Sie, dass ich dies getan habe und es für mich funktioniert (auch ohne den wrapper.update () Teil) und hier habe ich versucht, es auf Ihr Codebeispiel anzuwenden, ohne es auszuführen.

Beachten Sie auch, dass es auch in anderen Fällen als componentDidMount funktionieren sollte - etwa wenn nach dem Klicken auf eine Schaltfläche eine asynchrone Aktion ausgelöst wird.

    
bodrin 29.11.2016 20:25
quelle
1

Ich habe Ссылка gelesen und herausgefunden, dass der Parameter body im Callback fehlt. p>

Es sollte wie

aussehen %Vor%     
Stefan Moraru 11.07.2016 14:08
quelle

Tags und Links