Frage

Ich baue und eine Reihe von Flash-Komponenten beibehalten, die Verlage und ermöglicht es ihnen, mit unserem System zu integrieren. Derzeit hat die Komponente keine Benutzeroberfläche und enthält einfach kompilierten Code für unseren System-Server abfragt, Parsen der Antwort, und Modifizieren des params in der Abfrage gesendet. Es gibt eine AS2-Version und AS3 Versionen für Flex und CS3. Unser typischer Arbeitsablauf ist wie folgt:

1.) Lädt die Komponente 2.) eingestellten Parameter an der Komponente 3.) erzählen die Komponente unseres Systems abfragen 4.) warten auf ein Ereignis die Antwort sagen, empfangen wurde und analysiert 5.) -Aufruf Methoden auf der Komponente zum Abrufen und unter Verwendung von geparsten Daten

Wir haben in letzter Zeit viel gesprochen über die Prüfung dieser Komponenten zu automatisieren, und es scheint eine Menge Buzz zu sein um wie AsUnit und Flexunit-Frameworks. Allerdings habe ich in der Lage, nie zu begreifen, wie ich effektiv von einem von diesen verwendet werden könnten. Die Beispiele und Tutorials knausern immer auf reale Beispiele und stattdessen mehrere Klassen und übermäßige Code bieten den Zweck zu testen, ob ein Beispiel Funktion gibt num1 + num2.

Das einzige, was ich denke, ist, dass diese Test-Frameworks soll von Anfang an umgesetzt werden, mit der Planung für die Testsuite, Testläufer und Testfällen zu Beginn der Entwicklung eingebaut.

Eine automatisierte Test unserer Komponente würde sicher Eigenschaften wurden richtig eingestellt machen müssen, wurden diese Eigenschaften in der Anfrage an unser System geschickt, die Antwort empfangen wurde korrekt unter Berücksichtigung der Parameter gesendet wird, enthält die analysierten Daten korrekte Information und keine Fehler , schlechte Antworten, oder unendlich Parsing-Schleifen verursacht werden.

meine Frage ist, gibt es eine Möglichkeit, Prüfung eines bestehenden, weit verbreitet, etabliert Flash-Komponente zu automatisieren, ohne es vollständig zu überarbeitet in einem Test-Framework zu passen? Oder bin ich Missverständnis des Test-Frameworks und das ist schon möglich?

UPDATE : Danke für die Antworten. Ich habe begonnen, meine Komponente mit AsUnit zu integrieren und glaube, ich habe ein ziemlich gutes Verständnis davon, wie es mir helfen kann. Allerdings sind die AS2 AsUnit nicht asynchrone Testfälle unterstützen, und ich habe eine harte Zeit die Suche nach einem AS2 Unit-Test-Framework mit, das tut. Asynchrone Prüfung ist für dieses Projekt wirklich wichtig. Hat jemand irgendwelche Empfehlungen für einen anderen Rahmen? Vielen Dank!

War es hilfreich?

Lösung

Wir verwenden Flexunit auf unser Projekt und ich bin ziemlich glücklich mit ihm. Angenommen, Ihr Projekt mit einem ziemlich losen Kopplungsgrad entwickelt wurde, sollten Sie nicht viel überhaupt ändern müssen (wenn überhaupt), um den Code zu testen. Wenn Sie bereits ein MVC-Framework wie Cairngorm mit oder PureMVC , Flexunit sollte ziemlich schmerzlos integrieren.

werde ich sage jedoch, dass meine Erfahrung mit Flash / Flex Unit-Tests nicht annähernd so positiv ist, wie es mit anderen Sprachen wie Ruby oder .NET aus drei Gründen gewesen. Zuerst ist, dass ein so hoher Grad von Actionscript-Code wird UI verwendet, und diese Art von Code ist schwierig, wenn nicht unmöglich zu testen. Ein weiterer Grund ist, dass die Testläufer eignet sich nicht gut an in eine kontinuierliche Integrationsumgebung angeschlossen werden wie CruiseControl.NET oder CruiseControl.rb , da es erfordert ein Mensch, um sie auszuführen und Schaltflächen klicken. Schließlich ist ein großer Vorteil der Unit-Tests in der Regel, dass Sie es neben einem Coverage-Analyse-Tool wie NCover laufen oder rcov . Flash / Flex sich nicht für diese Art von Analyse verleihen mit aus einem modifizierten Compiler wie Flexcover .

Andere Tipps

Gut, dass Sie mit AsUnit!

zu hören, gingen

AsUnit ist der einzige Unit-Test-Framework, das eine konsistente Erfahrung in Actionscript 2 und Actionscript gibt 3. keine Abhängigkeit von äußeren Rahmenbedingungen hat - vor allem Flex, und es sollte mit dem Erstellen von Tests für Ihr Projekt keine wirklichen Probleme werden nach die Tatsache.

Die neueste von AsUnit baut haben Unterstützung für asynchrone Tests in Actionscript 2. Der AS25 Zweig kann hier gefunden werden:

http://github.com/lukebayes/asunit

Während ich hatte nie die Chance, mit einer Einheit Tester in Actionscript zu arbeiten, bei der Arbeit wir einen Rahmen geschaffen, die:

  1. das Skript zusammengestellt (s) in einer Testanwendung, in unserem Fall mit flex
  2. eine Zeitgeber (watchdog) Anwendung im Fall der Schleifenstörung eingerichtet
  3. lief die Anwendung, die wiederum:
    • an einen PHP-Backend verbunden, um einen Testfall zu bekommen
    • fütterte die Prüfung auf die Komponente
    • die Ergebnisse lesen und schickte sie zurück
  4. würde der Watchdog treten in und um die Anwendung töten auf je nachdem was zuerst passiert:
    • Timer lief (angemessenes Timeout)
    • Anwendung gesendet, die Ergebnisse zurück
  5. , wenn es andere Tests waren zu laufen, gehe zu 2.

Auf jeden Fall nicht elegant, aber hat seinen Zweck erfüllt (das mit AS1 Skripte war)

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