ここでは、実際に今後の連載で取り上げるフレームワークを簡単に紹介します。以下のように、組み合わせたり単独で使ったりする方法もあります。
「Phantomjs」はWebKitをヘッドレス化してJavaScriptのAPIを利用できるようにしたツールです。コマンドラインからDOMやCSSといった通常ブラウザで扱えるものは一通り操作可能で、SVGやCanvasも利用できます。またjQueryなどのライブラリも利用可能です。
このツールを利用してヘッドレスなテストを実行するテスティングフレームワークとして、「Jasmine」を組み合わせます。JasmineはJavaScriptでBDDを実行するためのフレームワークです。RubyのRSpecライクな記法でテストを記述できます。
introduction.js via kwout
Phantomjsの利用はそのままで、組み合わせを「QUnit」に変えてみます。QUnitはjQueryのテストを行うために作られたフレームワークですが、現在は特にjQueryと関係なくJavaScript全般のテストが行えます。
QUnit自体はWebブラウザベースで実行するのが基本ですが、Phantomjsと組み合わせることでヘッドレスなテストが可能となります。
「JsTestDriver」はヘッドレスな手法とブラウザベースのテストの良いところをそれぞれ取り入れたような形でテスト実行できるフレームワークです。JsTestDriverでは、サーバを立ててそこに接続したWebブラウザ上でテストを実行します。
テスト自体はxUnit(QUnitなど)系のテストを利用でき、複数のWebブラウザ上での高速なテスト実行をコマンドラインの操作からできるようにしています。
ユーザーのWebブラウザ操作をエミュレートする形でテスト実行するフレームワークである「Capybara」をWebKitベースで実行できるようにしたものが「Capybara-webkit」です。GUIベースでの利用もできますが、「仮想フレームバッファ」という方法で画面を表示せずにバッファ上に展開するだけで実行することもできます。本連載では、そちらを利用してヘッドレスに実行する方法を試します。
また、スタブやモックを提供してくれるライブラリである「Sinon.JS」を組み合わせて利用します。
次回以降、それぞれのフレームワークについて詳細に見ていきますので、お楽しみに。
Copyright © ITmedia, Inc. All Rights Reserved.