Ankündigung

Einklappen
Keine Ankündigung bisher.

Unit-Test oder etwas vergleichbares mit php

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Unit-Test oder etwas vergleichbares mit php

    Hi,

    ich kenne Unit-test von Java und wollte mich mal damit beschäftigen, diese auch mit PHP zu nutzen?

    Offenbar gibt es ja PHPUnit...

    Was benutzt ihr denn zum systematischen Testen?

    Gruß,
    Crypi

  • #2
    Hallo Crypi,

    ich kombiniere UnitTests mit automatisierten Modultests. Für letzteres gibt es unzählige Tools. Viele haben einen Recorder am Start, mit dem man einen Klick-Pfad aufnehmen und anschließend zum Testen ausführen kann. PHPEdit hat für UnitTests eine sehr schöne Integration in die IDE zu bieten.

    Wenn du mich nach Namen von Tools fragst, muss ich kurz recherchieren, da ich nicht genau weiß, was genau du haben möchtest.

    Kommentar


    • #3
      Zum Bedingungstest manchmal ganz hilfreich. Zumindest in der Entwicklungs- und Testphase. Danach am Besten per Tokenizer aus dem Skript entfernen.
      http://de.php.net/assert

      Kommentar


      • #4
        Kleine Einführung zu PHPUnit:

        PHPUnit oder testgetriebene Entwicklung

        Kommentar


        • #5
          "Assertions" (Zusicherungen) zum Prüfen von Vorbedingungen, Nachbedingungen und Invarianten empfehlen sich wirklich.

          Zusätzlich empfehle ich assert() auch für die Prüfung des Gültigkeitsbereiches und des korrekten Typs von Variablen zu verwenden und regen Gebrauch von unset() zu machen, um das Ende der Lebensdauer einer Variable explizit zu kennzeichnen. Andernfalls führen einfache Tippfehler gelegentlich zu überraschenden Ergebnissen mit anschließender stundenlanger Fehlersuche
          Beispiel:
          Code:
          assert("!isset($foo);"); // start of life: $foo
          $foo = 0;
          // do something with $foo
          unset($foo); // end of life: $foo
          Und zur Prüfung des korrekten Typs von Rückgabewerten:
          Code:
          assert("is_int($result);");
          return $result;
          Nichts ist nerviger, als wenn man zusätzlich zu den Fehlern die man selbst sowieso schon macht sich auch noch um das Abfangen fehlerhafter Rückgabewerte fremder Funktionen kümmern muss.

          Grundsätzlich habe ich es mir zur Gewohnheit gemacht für jede neue Funktion sofort mindestens einen Testfall zu schreiben. Das kann ich nur empfehlen, weil es die Qualität IMHO deutlich verbessert. Außerdem kann man die Testfälle auch gleich als Beispiele für die Dokumentation verwenden. Dadurch schlägt man zwei Fliegen mit einer Klappe.

          Die Build-Skripte können die Testfälle anschließend beim Erstellen des Installationspaketes automatisch rausschmeißen.

          Natürlich muss man trotzdem immer noch von Hand testen. Nichts kann die menschliche Intuition und eine gute Spürnase ersetzen - wie ja auch in dem von robo genannten Artikel auf "Developer's Guide" steht. Der ist übrigens IMHO wirklich sehr lesenswert.

          Kommentar

          Lädt...
          X