Frage

Oft finde ich mich wollen, um eine Unit-Test für einen Teil des Codes zu schreiben, die HTTP-Ressourcen als Teil seiner normalen Funktion zugreift. Haben gefunden Sie gute Möglichkeiten, um diese Arten von Tests zu schreiben?

War es hilfreich?

Lösung

Extrahieren Sie den Teil, der die HTTP-Ressourcen aus Ihrem Haupt-Code zugreift. Erstellen Sie eine Schnittstelle für die neue Komponente, in Ihrem Test, verspotten die Schnittstelle und die Rück Daten, die Sie zuverlässig steuern können.

Sie können den HTTP-Zugriff als Integrationstest getestet werden.

Andere Tipps

Dies ist typischerweise eine Funktion, die ich für die Tests verspotten würde ... ich meine Tests nicht außen auf etwas abhängig mag ... noch schlimmer, wenn es sich um eine externe Ressource ich keine Kontrolle über (wie ein drittes haben Partei-Website).

Datenbanken ist eine der wenigen externen Ressourcen, die ich oft nicht spotten ... Ich benutze DBUnit statt.

Vor kurzem hatte ich eine Komponente zu schreiben, die ein Wiki abgerufen und hat einige grundlegende Text Schaben. Die Mehrzahl der Tests habe ich den richtigen HTTP-Antwortcode validiert. Soweit die tatsächliche Ressource Validierung geht, würde ich eine Offline-Version eines bekannten Ressource speichern und prüfen, ob der Algorithmus sammelt / Verarbeitung der korrekten Daten.

Je nachdem, welche Sprache oder Rahmen Sie verwenden, kann es einfach sein, einen lokal laufenden HTTP-Server zu starten, die die Ressourcen servieren Sie wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top