Lars Tesmer Blog: Wie man Unit Test der Klasse Anrufen auf eine URL (oder das Filesystem) Mit PHPUnit

Lars Tesmer hat einen Vorschlag für alle die Einheit Tester da draußen (Sie Unit-Test-Code, oder?), wenn benötigen, um ein Stück Code, dass ein Anruf macht, etwas auf das Dateisystem testen oder eine entfernte Ressource. Ihre Beispiele aus den Tests gegen die Assetic Codebasis geschrieben habe.

Für unsere jüngsten After Work Hacking meine Mitarbeiter und ich beschlossen, Unit-Tests für den Schreibzugriff das Open Source Projekt Assetic . Das stellte sich als eine bessere Entscheidung als unsere letzte sein, doch wir noch lief in eine interessante Herausforderung.

Bei der Prüfung der HttpAsset-Klasse aus dem Werkzeug, stießen sie auf das Problem – ein Aufruf einer remote / Datei-Ressource, die nicht wegen einer file_get_contents nennen, die auf eine externe Quelle abhängt. Sie kamen mit ein paar Optionen, um zu versuchen, dieses Beispiel zu testen, einige besser als andere:

  • Gib es eine echte URL mit Test
  • Wickeln Sie das file_get_contents in einer neuen Klasse (zB eine „ContentFetcher“)
  • vfsStream zu verspotten aus dem Dateisystem in das Gerät zu testen

In ihrem Fall könnte vfsStream nicht auf, wie sich die zu holen Anruf getätigt wurde, aber das Tool kann sehr nützlich sein, wenn Sie Mock aus einer externen Datei Systemressourcen benötigen.

PHPDeveloper.org

Schreibe einen Kommentar