0

Ich habe keine Möglichkeit gefunden, REST-Methoden für meine Anwendung automatisch zu testen, während ich setUp und tearDown verwende, um die Eindeutigkeit jedes Tests zu erhalten.Wie teste ich Unit-Test-REST-Methoden in App Engine?

gaetestbed gibt mir einen sauberen Datenspeicher zwischen den Tests. Und httplib2 ermöglicht es mir, problemlos REST-Methoden aufzurufen und ihre Antworten zu analysieren; Dazu muss jedoch eine lokale Instanz meiner Anwendung auf Port 8080 laufen und jeden Test aufrufen. Dies verhindert den Zweck einer gaetestbed-artigen Aktualisierung des Datenspeichers, da Daten zwischen Aufrufen erhalten bleiben.

Ich konnte die GAE-Server innerhalb des setUp und tearDown Methoden, aber dies scheint verschwenderisch und zeitaufwendig starten und stoppen. Gibt es einen besseren Weg?

Antwort

3

Mit gaetestbed oder Ihre eigenen Unittest Code wie this, einfach direkt Ihre Handler-Klassen instanziiert, eine verspottet/gefälschte Umwelt Wörterbuch verwenden und die Methoden aufrufen (initialisieren() und get()/post()/usw. im Fall von Webapp) direkt.

+0

Danke, Nick! –

0

Bei Funktionstests mit REST-Methoden haben wir Helper-Aufrufe geschrieben, um die internen Caches zu bereinigen und unsere Engine zur Synchronisierung mit der Datenbank zu zwingen.

Ich habe nicht gaetestbed verwendet, aber ich hätte gedacht, dass Sie flush the datastore zwischen den Tests?

"Use case: develop and test locally with real data 
Restore to: your local development server. 
Once you have restored the data to your local development server, I would highly suggest that you take a backup of your datastore. 
You can find your datastore files in a temporary folder on your local machine (e.g., on my Mac, it's /var/folders/bz/bzDU030xHXK-jKYLMXnTzk+++TI/-Tmp-/). To find the folder on your own machine, flush the datastore (./manage.py flush) and you will see the path to your datastore folder printed in the resulting output." 
Verwandte Themen