株式会社クリアコード > フリーソフトウェア開発 > UxU -UnitTest.XUL -

UxU -UnitTest.XUL -

UnitTest.XUL(略して「UxU(うず)」)は、Firefox・Thunderbird用のアドオン、およびXULRunnerアプリケーション開発のためのxUnitテスティングフレームワークです。後退バグによる手戻りを防ぎ、アドオン開発の着実な進行を支援します。

アドオンの動作検証を支援

UxUを利用して自動テストを開発すると、アドオンやライブラリの挙動を詳細な部分まで確実に検証できます。

このようなアドオン開発上のニーズに、UxUはお応えします。

見やすいテスト結果表示

テストは、単に実行するだけでなく、その実行結果を見てデバッグを行うことが重要です。UxUはテストの実行結果の表示を工夫することで、デバッグ作業の効率を高めます。(テスト結果の表示例)

コマンドラインからの操作にも対応

ソケット通信により、UxUをコンソールから操作することもできます。標準添付のユーティリティ「ifx」を利用すれば、JavaScriptを用いた対話的な操作も可能です。

Greasemonkeyスクリプトの開発にも

UxUはGM関数のエミュレーション機能も含んでいます。GM関数を多用したGreasemonkeyスクリプトも、UxUは自動テストの対象にできます。

書きやすく、メンテナンスのしやすいテスト

ソフトウェア開発においては、後々のメンテナンスのしやすさが重要です。テスト対象のプログラムに新機能を加えれば、それに対応した修正をテストにも施す必要があります。テスト対象だけでなくテストそのもののメンテナンスも容易に行えるよう、UxUは様々な特長を備えています。

テスト定義はJavaScriptの関数定義

UxUはテストファイル内に書かれた関数を自動的に収集し、関数の名前に基づいて、それらをテスト用のコードとして認識します。テストスイート全体、テストケース全体、個々のテストのそれぞれのレベルの前処理と後処理なども、関数として簡単に記述できます。

function setUp()
{
  item = new MyClass();
}

function testMethod()
{
  assert.equals(item.someMethod(), 'correct result');
}

非同期なテストを処理待ち機能で簡単に実現

ページの読み込みや、タイマーで動作する処理など、非同期に動作する処理の終了を待つ必要がある場合などに、コールバック関数やイベントリスナ等を使う必要はありません。

UxUでは任意のタイミングで、復帰条件を指定した上で、テストの処理を容易に一時停止できます。これにより、クラスのユニットテストだけでなく、GUIが関係する機能の結合テストなども非常に簡単に記述できます。

function testSend()
{
  var box = content.document.getElementById('box');
  action.fireMouseEventOnElement(box);
  yield 500; // 500ミリ秒待って再開
  assert.equals('50px', button.style.marginLeft);
}

様々なヘルパーメソッド

UxUはMozillaアプリケーションのアドオン開発に利用されることを想定しています。一般的なJavaScriptフレームワークには無い、アドオン開発で直面しがちな様々な場合に応じたヘルパーメソッドを活用することで、テストしたい機能に直接関係するコードの記述だけに集中できます。

多彩な標準アサーション

UxUは目的別に様々なアサーションを多数備えています。それらを適切に使い分けることで、後から別の人がコードを見た時にも意味や意図を読み取りやすい、メンテナンス性の高いテストケースを作成できます。

クリーンなプロファイルでのテスト実行をサポート

ユーザ設定や利用状況などに応じたテストを簡単に行えるように、UxUでは、それぞれのテストに専用のユーザプロファイルを指定することができます。

雛形としてのプロファイルを用意することで、同じ環境・同じ設定でテストを実行できます。テスト実行の度に環境を準備したり、テスト実行後に環境を元に戻したりといった、煩雑な操作は一切不要です。

最新のJavaScript 1.8に対応

一般的なWebアプリケーションでは利用することが難しい、JavaScript 1.8の便利な機能をすべて利用できます。これにより、テストの記述をより簡潔に保つことができます。

採用事例

いくつかのアドオンの開発現場で、実際にUxUが利用されています。

はてなブックマークFirefox拡張

ソーシャルブックマークサービス「はてなブックマーク」の使いやすさを向上するFirefox用のアドオンです。内蔵のJavaScript製ライブラリのテストに、UxUが利用されています。

XUL/Migemo

XUL/Migemoは、Firefoxのページ内検索機能やスマートロケーションバーの検索において、ローマ字入力によって直接日本語の単語を検索できるようにするアドオンです。様々な検索モード、様々な入力パターン、様々な操作パターンにおける挙動の検証のために、UxUが利用されています。

テキストリンクは、Webページに書かれたURI文字列をダブルクリックするだけで読み込めるようにする、Firefox用のアドオンです。様々な場面での挙動の検証のために、UxUが利用されています。

ライセンス

有償サポート・技術支援

クリアコードではUxUの有償サポート、UxUを利用してのテスト開発、導入支援、テスト開発の教育を行っています。詳細についてはinfo@clear-code.comまでお問い合わせください。

プロジェクトページ

UxUのプロジェクトページは本サイト内にあります。利用方法、リファレンスマニュアルなどについてはプロジェクトページをご覧下さい。