Frage

Was wäre die richtige Art und Weise der Einheit sein Testen eine Controller-Aktion, dass führt eine Umleitung?

UPDATE: Ich bin Kernentwickler auf dem CFWheels Projekt. Der ganze Grund, warum ich diese Frage bin gefragt ist zur Zeit arbeite ich an den integrierten Verbesserung im Rahmen testen wir haben und ich frage mich, wie so etwas in CFWheels zu nähern und implementieren, um es einfacher für Entwickler ihre Anwendung testen .

UPDATE: Ich habe herausgefunden, wie dies zu testen. es scheint, dass wir die Räder Controller Interna ein wenig neu zu schreiben, müssen die Umleitung nach der Aktion abgeschlossen durchzuführen und danach wieder an den Verteiler übergeben wird. das einzige, was bei diesem Ansatz ist, dass jeder Code nach dem RedirectTo () ran AUSSER wäre, wenn Sie die entsprechenden Vorkehrungen zu treffen, bevor die Hand; dies beinhaltet entweder eine Rückkehr nach der RedirectTo () Anweisung setzen oder bedingte Kontrollen in Ihrer Aktion setzt die RedirectTo () Code von anderem Code zu isolieren. Es geht auch darum, sicherzustellen, dass nichts anderes einmal RedirectTo gemacht wird () ausgeführt wird.

War es hilfreich?

Lösung

Stuff wie dies wird sehr viel einfacher zu testen, ob Sie die Redirect-Mechanismus in mehrere Funktionen auseinanderbrechen: a.) Eine Funktion, die die Ziel-URL und b) eine Funktion, führt die Umleitung bestimmt

Auf diese Weise können Sie testen Funktioneine sehr leicht und Funktioneine ist, die Sie auf jeden Fall testen möchten. Es ist der Code Sie schrieben. Es ist, wo Sie Ihre wirkliche Logik. FunktionD ist nicht Ihr Code; es Coldfusion Mut, und es gibt nicht viel Sinn in cflocation testen.

Wenn Sie auf einige Mission sind 100% Testabdeckung zu erreichen, dann könnte man 10 Tests für Funktioneine verbringen, wo Sie alle die verschiedenen Zweige der Logik trainieren, und dann ein Test für FunktionD, die die Umleitung in der Weise ausübt, dass Terry schlägt; so auf diese Weise nur 1 statt 10 langsam Test erhalten.

Sie können diesen Ansatz für die Nutzung in anderen Szenarien verallgemeinern: Dateisysteme, Web Service, http, ftp, E-Mail, etc: „das Zeug Extrahieren Sie und wollen Test von dem Zeug steuern können Sie nicht kontrollieren können und nicht will test "

Andere Tipps

Sie können den Controller mit der entsprechenden URL aufrufen cfhttp mit Umleitung auf false gesetzt werden. Dann testen Sie das resultierende cfhttp Ergebnis struct, sollte es Informationen darüber, wo die Umleitung Sie würde.

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