Wie testet man Async Storage mit Jest?

9

Ich baue eine App mit React Native. Ich möchte minimieren, wie oft ich mit der Datenbank kommuniziere, also benutze ich AsyncStorage. Bei der Übersetzung zwischen DB und AsyncStorage gibt es jedoch viel Platz für Fehler. Daher möchte ich sicherstellen, dass AsyncStorage die Daten enthält, von denen ich glaube, dass sie dies tut, indem Sie automatisierte Tests dagegen ausführen. Überraschenderweise habe ich keine Informationen darüber gefunden, wie man das online macht. Meine Versuche, das alleine zu machen, haben nicht geklappt.

Verwenden von Jest:

%Vor%

Diese Methode ist mit einem Fehler fehlgeschlagen:

%Vor%

Wenn Sie die Rückkehr entfernen, wird sie sofort ausgeführt, ohne auf den Wert zu warten und den Test nicht ordnungsgemäß zu bestehen.

Ich habe genau den gleichen Fehler bekommen, als ich versucht habe, es mit dem await-Schlüsselwort zu testen:

%Vor%

Gibt es Vorschläge, wie Sie Assertionen gegen die Werte in AsyncStorage erfolgreich ausführen können? Ich würde es vorziehen, weiterhin Jest zu verwenden, aber wenn es nur mit einer alternativen Testbibliothek möglich ist, bin ich dafür offen.

    
Brian Case 03.12.2016, 21:13
quelle

3 Antworten

6

Meine ursprüngliche Antwort wies nur darauf hin, wie der Autor des Reactive-Native-Simple-Store mit dem Spott umgegangen war. Ich habe meine Antwort mit meinem eigenen Spott aktualisiert, der Jasons hartcodierte Scheinantworten entfernt.

Jason Merino hat einen schönen einfachen Ansatz dazu in Ссылка Tests /index-test.js#L31-L64

%Vor%

Mein eigener Mock:

%Vor%     
jaygooby 04.01.2017, 17:11
quelle
13

Vielleicht können Sie so etwas ausprobieren:

mockStorage.js

%Vor%

und in Ihrer Testdatei :

%Vor%     
free-soul 04.12.2016 10:19
quelle
-1

Damit jemand anders hierher kommt, benötigt asyncStorage auch einen Callback, einige libs verwenden dies

    
Antonio Presto 15.02.2018 17:39
quelle