YUI Test Utilityは、YUIを含むJavaScriptによるアプリケーションがWebブラウザ上でうまく動作するかをテストするものだ。Webブラウザ上でテスト結果が確認できるので、開発者にとっては便利なコンポーネントだろう。ただしこれはbetaリリースと位置づけられているため、仕様が今後変更されるかもしれない。
YUIは、対応するブラウザや利用条件に配慮した上でご利用いただきたい。また、実行環境となるWebブラウザはJavaScriptを実行可能にしておかなくてはならないのはこれまでと同様だ。
コンポーネントの概要
YUI Test Utilityには、いくつかのクラスが属しているが、そのうち主なものを以下に示す。
a. TestCase - 個別のテストケースを設定する b. Assert - 実行結果をチェックする c. TestRunner - テストケースを実行する d. TestLogger - テスト結果をログ出力 e. TestSuite - 複数のテストケースをまとめる f. UserAction - マウスの動きやキー入力を再現
Webブラウザ上で動作するアプリケーションをテストする際に、マウスのクリックやキー入力を再現するために専用のアドインを導入することもあるが、この方法はアドインが対応するWebブラウザでしか有効でない。
YUIであればその手段がライブラリに含まれているので、アドインが導入できない環境でもテストが可能だ。さまざまなWebブラウザへの対応が求められるアプリケーションを開発する際に活用していただきたい。
ロードするCSSとJavaScript
前述の通り、多くのクラスがこのコンポーネントに属している関係で、ロードすべきCSSやJavaScriptの数も多くなる(リスト1)。これはログ出力のコンポーネントも同時に必要とすることが関係している。それを用いなくてもテスト結果を知ることは可能だが、筆者からはそれを勧めるつもりはない。
リスト1 CSSやJavaScriptの設定(HTMLの内)
テストケースの設定
個別のテストケースはTestCaseのインスタンスにいくつかのプロパティを代入することで設定する。テスト前の初期設定はsetUp、テスト終了時の処理はtearDownというプロパティだ。実際に実行するテストはtest〜という名称にしておく。JavaのテストツールJUnitを経験していれば、これらは馴染みのある名称だろう。リスト2にテストケースの例を示す。
テストの結果を調べるのはAssertだが、対象をオブジェクトに特化したObjectAssertや配列に特化したArrayAssertも存在するので、テストの内容に応じて使い分けていただきたい。