Nate Krantz: How I’m Writing Unit / Functional Tests

In a recent post Nate Krantz has shared some of his own methods around writing functional and unit tests.

So…testing. That thing that everyone says is so important but you don’t really learn about it in school. I’ve had some trials and tribulations with testing so I’m going to just dump out some thoughts here.

He starts with a bit of background on his own experiences in development and how he finally decided that testing would „solve everything“. He started with unit tests (for a CodeIgniter application) and how he got them up and running. He talks about issues he found around dependencies (and static methods) and how he made use of mocks to reduce some of the issues with dynamic loading, at least how CodeIgniter does it. Unfortunately, this didn’t work out as planned so he fell back to a test database and create more effective and simpler functional tests. Code examples are sprinkled through out the post to show how he was trying to solve the problem at different points in the process.

Link: http://www.natekrantz.com/why-test-driven-development-rocks-sucks/
PHPDeveloper.org

Kurt Payne Blog: Wie man Unit Test pcntl_fork ()

Kurt Payne hat einen neuen Beitrag in seinem Blog zeigt, wie Sie Gerät testen Sie Ihre Prozess-Forking in Ihrer PHP-Anwendung ( pcntl ).

An einem gewissen Punkt, viele PHP-Entwickler, die pcntl Funktionen in php wiederum zu einem Dämon oder Server zu schreiben, oder simulieren Threading. Aber wie wollen Sie Unit-Test dieses mit vollständiger Code-Coverage? […] Wir müssen einige schwarze Kunst PHP-Erweiterungen engagieren, damit dies geschieht. Eine Installationsanleitung folgt, und der Beitrag endet mit einer kompletten Auflistung der Unit-Test.

Er nutzt die test_helpers Ausbau und die Sebastian Bergmann zur Verfügung gestellt) = „https://github.com/zenovich/runkit/“> runkit , damit der Test neuer Methoden Kopieren der aktuellen pcntl Methoden und verhöhnt die Antworten zu definieren. Tests sind enthalten, um die Muttergesellschaft eines Prozesses zu überprüfen, die Überprüfung der Kinder eines Prozesses und Prüfung, dass eine Gabel gemacht werden könnten. Hes sogar visuellen Beweis von dieser Arbeitsgruppe einbezogen.

PHPDeveloper.org

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

Lars Tesmer Blog: Was meine Mitarbeiter und ich lernte, beim Versuch, Unit Tests für PHPUnit schreiben

Lars Tesmer und seine Mitarbeiter haben auf die Verbesserung ihrer Entwicklungskompetenz in letzter Zeit gearbeitet, speziell . In seinem neuesten Beitrag teilt er einiges von dem was sie haben auf dem Weg entdeckt.

Der Plan war, zu versuchen und zu schreiben, wie viele Tests, wie wir konnten für die PHPUnit verwendet, um seine Behauptungen zu implementieren. […] Nun, unser Plan ging nicht auf diese Weise haben wir nicht wirklich in schriftlicher Form eine beträchtliche Menge von Unit-Tests erfolgreich zu sein. Doch es war immer noch eine wertvolle Erfahrung, wie sich später herausstellte die Unit-Tests der Constraints sind ein gutes Beispiel dafür, wie man Unit-Test.

Er umfasst drei der wichtigsten Punkte, die sie in ihrer Praxis Entwicklung kam:

  • Verwenden Sie nicht einen einzigen Testfall-Klasse, um mehrere Klassen testen
  • Benennen Sie Ihre Tests gut
  • Vermeiden Sie mehr als ein Verhalten in einem einzigen Test Test

Für jeden gibt es eine Zusammenfassung der Beantwortung der „Warum“-Frage hinter ihnen, darunter ein Beispiel-Test (testConstraintIsType), dass eine schlechte, multiple Behauptung der Praxis, dass nach Möglichkeit vermieden werden sollten zeigt.

PHPDeveloper.org

Warren Tang Blog: PHP Unit Testing & Mock Objects mit SimpleTest Plugin für Eclipse

Warren Tang hat zusammen diese neue post in seinem Blog zeigt, wie Sie die SimpleTest Erweiterung für Eclipse verwenden zu führen die Tests ohne die IDE zu verlassen.

Er zerlegt es in ein paar einfachen Schritten (teilweise mit Screenshots hinzufügen):

  • Download das Plugin
  • Installieren und konfigurieren
  • Erstellen eines einfachen Test mit einer Behauptung
  • Führen Sie den Test über „Wie> SimpleTest Run“

Er beinhaltet auch die Option zur Durchführung des Tests, wie eine Web-Seite, aber das erfordert ein bisschen mehr Code. Es gibt auch einen kurzen Blick auf, wie eine Reihe von Tests aus der IDE (wie auch in den Browser) ausgeführt werden. Für weitere Informationen zur Verwendung SimpleTest, über Kopf zu des Projekts vor Ort .

PHPDeveloper.org