Frage

Ist es möglich zu haben ein Gerät Wechsel zwischen test-Methoden?Wenn ja, wie kann ich dies tun?

Meine syntax für dieses problem :

In der cakephp-framework Baue ich tests für ein Verhalten, das konfiguriert ist, indem Sie Felder in der Tabelle.Dies ist beabsichtigt, um die Arbeit in der gleichen Weise, dass hinzufügen "erstellt" und "modifiziert" werden Felder automatisch ausfüllen dieser Felder auf speichern.

Um dies zu testen habe ich könnte erstellen Sie Dutzende von VORRICHTUNGEN/Modell combos zu test die verschiedenen setups, aber es wäre hundertmal besser, schneller und einfacher, einfach die Halterung ändern "Form" zwischen test-Methoden.

Wenn Sie sind nicht vertraut mit der CakePHP framework, Sie können vielleicht immer noch helfen, mich als es nutzt SimpleTest

Edit:also Frage mehr allgemein

War es hilfreich?

Lösung

Ich bin nicht vertraut sind, insbesondere mit CakePHP, aber diese Art der Sache zu geschehen scheint, überall Leuchten.

Es gibt keinen eingebauten Weg in Schienen zumindest für diese zu passieren, und ich Stelle nicht in cakePHP oder sonst irgendwo, entweder, weil die ganze Idee von einer Vorrichtung ist, dass es Feste

Es gibt 2 'anständige' Problemumgehungen, die ich bewusst bin

  • Schreiben Sie eine changefixture Methode, und kurz bevor Sie Ihr behauptet,/etc, führen Sie mit den Parametern, was zu ändern.Es gehen sollte, und aktualisieren Sie die Datenbank oder was auch immer getan werden muss,.

  • Verwenden Sie nicht Leuchten, und eine Art von Objekt, Werk oder Objekt-generator zu erstellen, Ihre Objekte zu jeder Zeit

Andere Tipps

Dies ist keine Antwort auf meine quetion, aber eine Lösung für mein Problem Beispiel.

Anstelle der Verwendung mehrerer Geräte oder die änderung der Leuchten, Bearbeite ich das Modell::_schema arrays durch entfernen der Felder, die ich testen wollte, ohne.Dies hat den Effekt, dass das Modell wirkt, als ob der Felder war nicht da, aber ich bin nicht sicher, ob dies ein 100% - test.Ich glaube nicht, es ist für alle Fälle, aber es funktioniert für mein Beispiel.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top