読者です 読者をやめる 読者になる 読者になる

assertEvalの活用方法(ブレイクポイント、終了通知)

[programming]
スポンサーリンク

assertEvalは、下記のような形式になっており、scriptとして指定したJavaScriptが評価され、その評価結果を比較します。

  • assertEval(script, scriptを実行した結果の文字列パターン)

scriptで指定するJavaScriptは、評価結果が返るようなものならなんでもOKなので、本来の使い方とは違った活用方法がありそうな気がしています。


とりあえず思いついたものを下記に、、

ブレイクポイント代わりに

コマンド 対象
assertEval confirm('続けますか?') true

確認ダイアログを表示し、OKならば評価結果はtrueになるので、そのままテストを続行し、キャンセルの場合には評価結果はfalseになるので、assertEvalがエラーとなり、テストが終了します。
Selenium IDE上で実行する分には、ブレイクポイントが設定できますが、TestRunnerだと出来ないので、テストコマンド自体をブレイクポイント代わりにしてみました。
けど、、ブレイクポイント設定できても、その後1コマンド毎実行できないとなると、あまり使い道ないかも…

                                    • -

追記@2007/01/09
otaoさんから、TestRunnerでもブレイクポイントが設定出来るようになっていることを教えていただきました。(いつもありがとうございます!)

otao 『現在(確か、、0.7.1以降?)のSeleniumCoreでのTestRunnerは、簡単にブレイクポイント設定できるので試してみてください。 TestRunnerウィンドウの、(真ん中の)テストケースが表示されてるところで、停止したいところをクリックするだけです。クリックすると灰色になって、そこでブレイク(一時停止)します(Continue)ボタンで続行)。もう一度クリックすると白く戻ってブレイク解除です。』 (2007/01/09 15:11)

0.8.1のSelenium-CoreのTestRunnerで試してみたところ、確かにシングルクリックで灰色になってブレイクポイントを設定できました。
Release Notes確認しましたが、otaoさんの言うとおり、0.7.1で追加された機能のようです。
完全に見逃してました…

テスト終了時の通知に

コマンド 対象
assertEval alert('テスト終了'); true; true

最後のテストコマンドに、上記のようなコマンドを設定しておくことにより、テスト終了をalertで通知します。
なお、alert自体は何も返さないので、"true;"を最後入れています。(比較文字もtrueなので、必ず正常終了)