updateはコメントに追加していきます。
使い方
testRunner.hta内部でAURegisterScenario(filePath)でテストシナリオを追加する。
テストシナリオで使える関数一覧
- AUKickTest(url, callback, comment)
urlで指定したファイルをロードし、callbackを呼び出す。commentはcallback内でexceptionがあがった時に表示される。 - AUWaitOnLoad(callback, comment)
次のonloadが呼ばれたら、callbackを呼ぶ。
callbackは引数がひとつで、AUUnitTestオブジェクトが渡されます。
- AUUnitTest::assertTrue([comment,] condition)
commentはオプショナル。 - AUUnitTest::Log(comment)
testRunner.htaの下のテキストエリアにログが表示される。 - AUUnitTest::T
loadが終わったコンテンツのwindowオブジェクトをあらわす。コンテンツ内に定義されたJSの関数やグローバル変数を触る時に使う。 - AUUnitTest::D
ロードされたコンテンツのdocumentオブジェクトを表す。
自分で使ってる物はもっとutilityが多いですが、基本コンセプトはミニマムなAPIの数とトリッキーな事を一切しない、という物。
Amazonでのテストはこんな感じ。
AUKickTest("http://www.amazon.co.jp", amazonTest, "test for amazon");
function amazonTest(u)
{
function N(u, name) { return u.D.getElementsByName(name)[0]; }
N(u, "field-keywords").value = "Mona OS";
AUWaitOnLoad(afterSearchComplete, "wait search");
N(u, "Go").click();
}
{
function N(u, name) { return u.D.getElementsByName(name)[0]; }
N(u, "field-keywords").value = "Mona OS";
AUWaitOnLoad(afterSearchComplete, "wait search");
N(u, "Go").click();
}
function afterSearchComplete(u)
{
u.assertTrue(-1 != u.D.body.innerHTML.indexOf("ひげぽん"));
}
{
u.assertTrue(-1 != u.D.body.innerHTML.indexOf("ひげぽん"));
}
http://mumurik.cocolog-nifty.com/blog/2006/03/aunit_2006_3_13.html
更新。
http://mumurik.cocolog-nifty.com/blog/2006/03/aunit_2006_03_1.html
AUKickTestを同一シナリオファイルで複数回呼ばれた時に、誤って上書きする場合があるのを修正。
http://mumurik.cocolog-nifty.com/blog/2006/04/aunit_516b.html更新。