JavaScript--単体テスト環境の選択肢

文:Tony Patton(Special to TecRepublic) 翻訳校正:石橋啓一郎
2008-09-16 08:00:00
  • このエントリーをはてなブックマークに追加

 ソフトウェアのテストは、ソフトウェア開発に不可欠な一面だが、(アプリケーション開発工程には関わらない)テスターの一群がアプリケーションが期待に沿うものになっているかを確かめる段階以外でも行われる。開発者も、単体テストで日常的な仕事の成果をテストすることによって、コードが期待通りのものであることを確かめていくことができる。この記事では、クライアントサイドのJavaScriptコードに対して単体テストを行う方法について説明する。

単体テスト

 単体テストは、個々のソフトウェアコンポーネントやモジュールに対するテストだ。単体テストはテスターではなく開発者によって実施されるという点で、従来のテスト工程とは異なる。これは、単体テストにはコードの知識が必要とされるためだ。従来のテストは、もっと後の工程で、(個々に単体テストを行われた)すべてのモジュールが全体として動作するかどうかを確認するために行われる。

 単体テストに重要な機能は、アサーションだ。これによって、開発者は単体テスト中にコードの実行状況、変数、オブジェクトの状態などをチェックすることができる。アサーションによって、一般的な比較や条件テストを行い、コードの実行状況を調べることができる。

 多くの開発者はJavaScriptを書くことは本物のプログラミングだとは考えていないが、JavaScriptは完全な機能を備えた言語であり、JavaScriptのコードに大きく依存するAJAXの流行によって広く利用されるようになっている。では、開発者はJavaScriptのコードに対してどのように単体テストを行えばいいのだろうか。JavaScriptの単体テストに利用できる選択肢はいくつかある。

JsUnit

 JUnitはJavaのコードの単体テストツールとして有名だ。これは何年も前に開発されたもので、Java開発者の単体テストフレームワークとして人気を集めているものの1つだ。JUnitは単体テストを記述し実行するための、言語に非依存の概念と構造のセットである、xUnitフレームワークを元にしている。

 JUnitの人気が非常に高かったため、.NET FrameworkのためのNUnitが作られた。今では、JavaScriptの開発者は、クライアントサイドのJavaScriptコードに対する単体テストに、JsUnitも利用することができる。これらの単体テストフレームワークのよいところは、これらがオープンソースであることだ。

 JsUnitは、純粋なJavaScriptだ。つまり、100%JavaScriptだけで書かれている。多くのウェブアプリケーションと同じように、これもほとんどのブラウザで動作する。実際のブラウザの中で実行できるという点で、JsUnitは他のテスト手法よりも優れている。サポートされているブラウザには、次のものが含まれている。

  • Windows 95/NT/2000/XPおよびMac OS 9/XのInternet Explorer 5.5以降
  • すべてのプラットフォームのMozilla 0.9.4以降
  • すべてのプラットフォームのFirefox 0.9以降
  • すべてのプラットフォームのNetscape 6.2.3以降
  • Linux KDE 3.0.1以降のKonqueror 5以降
  • Mac OS XのSafari 1.2以降

 JsUnitで重要なのは、これがクライアントサイドのJavaScriptコードをテストするために設計されたものであり、他のものは対象としていないということだ。したがって、ウェブアプリケーション全体をテストするためにはJsUnitは使わない。

 JsUnitはJUnitやNUnitと同じ機能を提供しているが、その機能の説明に独自の用語を使っている。例えば、JsUnitの単体テストは「Test Function」と呼ばれており、これはTest Page(HTMLファイル)上に存在する。「Test Page」を実行するためにはテスト実行ページが使われる。

 JsUnitは素晴らしいツールだが、このツールのSourceForgeのページに最後のアップデートが行われてから、2年ほど経ってしまっている。

  • 新着記事
  • 特集
  • ブログ