JavaScript--単体テスト環境の選択肢
Crosscheck
CrosscheckはJavaScriptのコードを単体テストするためのJavaベースのツールだ。これはスタンドアロンのアプリケーションであり、ブラウザの中で動くものではなく、テストするコードが実際にブラウザで動くことを確信するのは難しいかもしれない。しかし、Crosscheckはスクリプトが動作する可能性のあるさまざまな環境をシミュレートすることを目標としており、多くのブラウザをシミュレートしている。
ブラウザがシミュレートされていることから、テスト対象にしたいブラウザを読み込む必要はない。Crosscheckのゴールは、JavaScriptライブラリが期待通りに動作するかどうかをテストする仕組みを提供することだ。
テストは、実行するテストやその他の機能を定めるテストファイルで定義される。これによって、テストを行うさまざまな要素(HTMLの要素など)やユーザーの行動(ボタンのクリック)を設定して、ユーザーとの相互作用をシミュレートすることができる。Crosscheckの出力はコマンド行インタフェースから生成されるもので、少々原始的だ。
RhinoUnit
RhinoUnitは、Rhinoエンジン(Javaで記述されたJavaScriptインタプリタ)を利用するANTと一緒に動作するように設計されている。RhinoUnitは完全な単体テスト機能を備えていると同時に、関数の呼び出しと生成を確認したり、変数のスコープをチェックするといった拡張機能も持っている。特に興味深いのは、JSLintとの統合により、JavaScriptのコードを検証する機能を持っているということだ。
ライブラリ
さまざまなJavaScriptフレームワークが、単体テストのための機能を持っている。例えば、(JsUnitに似た)qooxdooは、持っているクラスに対し単体テストを行うためのテスト実行機能を持っている。qooxdooのTest Runnerフレームワークは、qooxdoo以外のコードに対しても利用できるもので、GUI、インフラストラクチャのレイヤ、任意のテストクラスに対するインターフェースを持っている。このため、自分のテストクラスを書いて、この環境を利用することができる。
Dojo Toolkitも、堅牢な単体テスト環境を提供している。Dojo Toolkitのテスト用ツールは、Dojo Objective Harnessと呼ばれており、カスタム名前空間を利用できるが、Dojo Toolkitに含まれているテスト実行ツールを利用するには特別な手順を必要とする。Dustin Machi氏のSitePenブログに、Dojo Objective Harnessを利用するための手順が説明されている。
どのツールを使えばいいか
ウェブ開発の現場は流動性が高く、ツールやテクニックは常に発展し、新しいものが導入されている。読者は日常的な仕事で単体テストやその他の作業にどんなツールを使っているだろうか。ウェブ開発コミュニティと読者の経験やお勧めを共有して欲しい。
この記事は海外CNET Networks発のニュースをシーネットネットワークスジャパン編集部が日本向けに編集したものです。海外CNET Networksの記事へ
- ホワイトペーパー



