5 Stimmen

UIAutomation iPhone: Ist es möglich, das Skript in mehrere Dateien aufzuteilen?

Ich möchte UIAutomation (JavaScript-basierte) Tests für eine ziemlich komplexe iPhone App schreiben. Ich möchte nicht eine einzige große Datei verwenden, sondern die Testfunktionen und Helfer in mehrere Dateien aufteilen. Ist das überhaupt möglich? Wie strukturieren Sie Ihre UIAutomation-Tests?

8voto

yoosiba Punkte 2236

Hallo.
Ja, das ist es. Obwohl import Schlüsselwort ist nicht für JS in Browsern implementiert, es ist in Instruments implementiert. Sie schreiben einfach #import "somefile.js" in der JS-Datei "master", die Sie mit Instruments ausführen. Ich habe nicht versucht, Dateien von anderen Orten als der Originaldatei, die Sie den Instrumenten zur Verfügung stellen, einzubinden, aber Unterordner für diesen Ort funktionieren.
Siehe folgendes Beispiel auf der Grundlage von diese Stelle :

#import "fileInTheSameDirectory.js"
#import "SubDirectory/fileInSubDirectory.js"

2voto

John Doe Punkte 4564

UIAutomation kann nicht mit großen Skriptdateien umgehen, in denen Sie Ihre Tests, Hilfsfunktionen usw. bündeln könnten. - unter Verwendung der #include Richtlinie. Dies ist jedoch die einzige Möglichkeit, mehrere Tests, die in separaten Dateien gespeichert sind, manuell durchzuführen.

Ich habe dieses Problem beim Aufbau eines kleinen (600-700 Zeilen oder 25KB Code) JS-Framework, das in der Lage ist, Test-Sets und Suiten laufen begegnet.

Die Teststruktur, die ich mir ausgedacht habe:

#import "test_scripts.js"
#import "test_data.js"
#import "helper_tools.js"

tools.runTestSet(TestContainer);

Wo TestContainer ist der Link zu einem Objekt, das alle meine Testfälle als seine Felder/Mitglieder enthält. Und test_data.js kapselt Daten in einem JSON-Container.

P.S.: Zuerst dachte ich, dass UIAutomation hat ein großes Potenzial, aber im Laufe der Zeit wurde ich enttäuscht. Man kann mit diesem Tool keine vollständigen Automatisierungstests durchführen. Denken Sie auch daran, dass es Ihnen nur eine API für die Arbeit mit der Benutzeroberfläche zur Verfügung stellt: kein Zugriff auf die "Back-End"-Prozesse.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X