2016-09-28 1 views
0

PHPUnit hat methods, um Datenbanken virtuell zu testen, aber wie kann ich einen HTTP-Dienst wie curl testen?Erstellen Sie einen Testfall für curl httprequest

Meine Klassenmethode ruft eine URL ab und fordert Parameter zum Senden an den Server an. Er empfängt die Antwort als JSON und sendet diesen JSON an eine andere Methode zum Parsen und Zurückgeben.

Ich möchte einen PHPUnit-Testfall für diese Klassenmethode erstellen. Sollte ich meinem Server eine echte URL zur Verfügung stellen? Sollte der Server eine erfolgreiche/Fehlermeldung zu diesem Testfall zurückgeben?

+0

Verwenden Sie guzzle als httpclient. Haben Sie eine Funktion für Pseudo-Aufruf – Matteo

Antwort

1

Anstatt die curl Verbindung in einigen Methoden Ihrer Klasse zu haben, wickeln Sie den curl Aufruf in seine eigene Klasse ein, verspotten Sie ihn und lassen Sie ihn an Ihre Klasse weitergeben.

Auf diese Weise können Sie den glücklichen Pfad testen, indem Sie den Schein json zurückgeben und auch Curl-Fehler simulieren (machen Sie den Schein verhält sich wie die echte curl Bibliothek).

Gleiches gilt für den Parsing-Teil. Wenn Sie den Parsing-Code in seine eigene Klasse verschieben und in die "main" -Klasse einspeisen lassen, können Sie es simulieren und Parsing-Fehler simulieren.

Für Komponententests sollten Sie nie echte Netzwerkanrufe tätigen.

+0

Danke, wie über Ihren ersten Absatz, meinst du nicht, curl direkt im Testfall, aber haben Sie es als separate Klasse und nennen Sie es innerhalb tescase? Bitte erläutern Sie anhand einiger Beispielcodes, was genau Sie meinen. – user4271704

Verwandte Themen