かなり複雑なiPhoneアプリ用のUIAutomation(JavaScriptベース)テストを作成したいと思います。1つの巨大なファイルを使用したくはありませんが、複数のファイルを使用してテスト関数とヘルパーを分離します。それは可能ですか?UIAutomationテストをどのように構成しますか?
2 に答える
おい。
はい、そうです。import
キーワードはブラウザのJSには実装されていませんが、Instrumentsに実装されています。#import "somefile.js"
Instrumentsで実行する「マスター」JSファイルに書き込むだけです。インストゥルメントに提供している元のファイル以外の場所からのファイルをインクルードしようとはしていませんが、その場所のサブフォルダーは機能します。この投稿
に基づいて次の例を見てください:
#import "fileInTheSameDirectory.js"
#import "SubDirectory/fileInSubDirectory.js"
UIAutomationは、テストやヘルパー関数などをバンドルしてしまう可能性のある大きなスクリプトファイルを処理できません#include
。ディレクティブを使用します。ただし、これは、個別のファイルに保存されている複数のテストを手動で実行できる唯一の方法です。
テストセットとスイートを実行できる小さな(600〜700行または25KBのコード)JSフレームワークを構築するときに、この問題が発生しました。
私が思いついたテスト構造:
#import "test_scripts.js"
#import "test_data.js"
#import "helper_tools.js"
tools.runTestSet(TestContainer);
TestContainer
すべてのテストケースをフィールド/メンバーとして保持しているオブジェクトへのリンクはどこにありますか。また、test_data.js
JSONコンテナー内にデータをカプセル化します。
PS当初、 UIAutomationには大きな可能性があると思っていましたが、やがてがっかりしました。このツールを使用して完全な自動化テストサイクルを実行することはできません。また、UIのみを操作するAPIを提供することにも注意してください。「バックエンド」プロセスへのアクセスはありません。