MarionetteはJavaScriptで記述されたWebAPIのテストをサポートしています。 これらのテストは test_
で始まり.js
拡張子を持つファイル名でなければなりません。
テストの実行
これらのテストはMarionette Pythonテストランナーを使用して実行します; 詳細はテストの実行を参照してください。
Test構造
すべてのMarionette JavaScript WebAPIテストは非同期です。そしてテストがfinish()
を呼ぶまで完了しないでしょう。 finish()
が呼ばれた時、フレームワークはテストの間に送信されたすべてのアサーションに関する情報を集めて結果をMarionetteテストドライバに報告します。 例:
// テストロジック (おそらく非同期) がここに来たら... finish();
例については、dom/telephony/tests/marionette以下のテストを参照してください。
テストフラグ
Marionette JavaScript WebAPIテストはフラグを利用していくつかのアクションを実行をMarionetteに指示することができます。
フラグ | 型 | 概要 |
MARIONETTE_TIMEOUT |
integer | テストがタイムアウトまでfinish() が呼ばれるのを待てる最大秒数です。 |
MARIONETTE_CONTEXT |
string | "content" か "chrome"のどちらかです; テストが実行される際のコンテキスト。 デフォルトは "content" です。 |
すべてのフラグはテストファイルの中でJavaScriptの変数に代入するように指定されます。 例:
MARIONETTE_TIMEOUT = 30000; // 30秒タイムアウト MARIONETTE_CONTEXT = "chrome"; // chromeコンテキストでテストを実行する // テストロジック (おそらく非同期) がここに来たら... finish();
テスト関数
すべてのJavaScript WebAPIテストは利用可能な関数の数を持っています。
void is(value1, value2, message) |
void isnot(value1, value2, message) |
void ok(value, message) |
void finish() |
void log(message, level) |
Array getLogs() |
void waitFor(callback, test, timeout) |
void runEmulatorCmd(cmd, callback) |
is(value1, value2, message)
ふたつの値が等価の場合アサートします。 アサーションが失敗するとメッセージとともにテストが失敗します。
isnot(value1, value2, message)
ふたつの値が等価でない場合アサートします。 アサーションが失敗するとメッセージとともにテストが失敗します。
ok(value, message)
値がtrueの場合アサートします。 アサーションが失敗するとメッセージとともにテストが失敗します。
finish()
テストを終了します。
log(message, level)
指定したメッセージを指定したレベルで記録します。 レベルは任意の文字列desu; デフォルトは ”INFO" です。
getLogs()
すべてのログを配列にして返してログを消去します。
waitFor(callback, test, timeout)
test
パラメータとして渡された関数を関数がtrueを返すまで反復的に呼び出し、その次にcallback
を呼びます。. もしtest
関数がtimeout
ms以内にtrueを返さなかったら例外を投げます。 timeout
パラメータはシステムデフォルトのタイムアウト時間を使う場合は省略できます。
runEmulatorCmd(cmd, callback)
エミュレータの制御ポートに指定されたコマンド文字列を投げます。オプションのコールバックはコマンドの出力行を含む配列と共に呼び出されます。コマンドの一覧はAndroid Emulator documentationを参照してください。