#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 + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#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ß + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren