[PHP] Unit Tests

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Blackb!rd, 22. November 2012 .

Schlagworte:
  1. 22. November 2012
    Unit Tests

    Hallo Zusammen,

    ich beschäftige mich derzeit mit dem dem UnitTests. Man findet in Google sehr viel darüber, wie wichtig dieses Tests zur eigenen Kontrolle sind und auch sehr viele praktische Beispiele!

    Allerdings sehe ich bei mir dazu nur sehr wenige Ansatzpunkte. Die meisten meiner Systeme arbeiten mit Mysql-Datenbanken und daher hat fast jede Funktion irgendwie Zugriff auf die Datenbank, bzw auf deren Ergebnisse! Dies lässt sich aber ja für einen Test sehr schlecht nachstellen, da es ja - meiner Meinugn nach - nicht vorgesehen ist eine Datenbank in einen solchen Unit Test einzubinden!

    Hat jemand Erfahrungen mit Unit-Tests und kann mir ein paar praktische Einsteigerbeispiele & Tipp's geben?


    Grüße Blackb!rd
     
  2. 22. November 2012
    AW: Unit Tests

    Klar kannst du eine MySQL Datenbank mit in die Unit-Tests packen, du musst deine Tests nur so umbauen, dass keine bestehenden Datensätze angefasst werden.
     
  3. 22. November 2012
    AW: Unit Tests

    Macht das Sinn in nem unit-Test Datenbank Verbindungen aufzubauen und das ganze zu testen? Wird das in der Praxis so gemacht? Ich kann mir den praktischen Einsatz davon irgendwie nicht so richtig vorstellen ?(

    Gruß Blackb!rd
     
  4. 22. November 2012
    AW: Unit Tests

    Na klar, wie auch sonst willst du deine Models umfassenden testen?
    Hier wandert ja auch SQL-Code über den Äther der getestet werden muss.
     
  5. 25. November 2012
    AW: Unit Tests

    Es kann sein das du für UnitTests deine Funktionen etwas umbauen musst. Du willst deinen Code testen und nicht die MySQL Funktion von PHP. Da kannst du davon ausgehen, dass diese funktioniert.

    Tests die das Zusammenspiel von mehreren Komponenten abdecken (Datenbank, mehrere Klassen, etc), sind auch bekannt als Integration Tests. Hier ist zu beachten, das du vor dem Tests Datenbankeinträge erstellen und nach dem Test wieder aufräumen musst.

    Hast du ein Beispiel was du testen willst?

    Gruß
     
  6. 25. November 2012
    AW: Unit Tests

    Nein, das genau ist mein Problem

    Ich habe meinen Code mit einem Grundgerüst, dass zB das Routing managed, die Datenbank-Verbindung herstellt, Session verwaltet etc...

    Daneben habe ich diverse Seiten, wo Content ausgegeben wird mit Datenbankzugriffen und zusätzlich einige Formulare zum Eintragen von Daten

    Ich habe kein wirklichen Plan wie ich da ansetzen soll. Die typischen Test's von "ValidateEMail()" mit testValidateEMail("bla@bla.de") und testValidateEMail("bla@bla@bla.de") kann ich da nicht durchführen :/


    Gruß Blackb!rd
     
  7. 1. Dezember 2012
    AW: Unit Tests

    was du evtl brauchst sind keine unit tests, sondern frontend tests.
    beispielsweise:
    • ist dein content da wo er hin soll
    • wird der content richtig ausgegeben
    • ...
    schau dir hierzu mal beispielsweise Selenium - Web Browser Automation an.

    gruß
    wollknoll
     
  8. 1. Dezember 2012
    AW: Unit Tests

    Nochmal kurz um aufs Thema "Testen & SQL" zurückzukommen.
    Das findet in der Praxis durchaus Einsatz - Das Werkzeug welches hier zum tragen kommt sind sogennante Fixtures. Ein Fixture kannst du dir als eine vordefinierte Datenbanktabelle mit vordefinierten Daten ansehen. Vor einem Testlauf kann der Entwickler angeben welche Fixtures er verwenden möchte. Die werden dann in die (Test)Datenbank geladen damit beim Testen der Stand der Daten konsistent ist. Anschließend laufen auf diesen Datensätzen die Tests durch.
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.