js-test-driverはGoogleが作った、JavaScriptをコンソールでテストするプログラム。試したのでメモを。環境はMountain Lion搭載のMacBookAir。
ダウンロード:
http://code.google.com/p/js-test-driver/downloads/list
使い方:
http://code.google.com/p/js-test-driver/wiki/GettingStarted
参考になる日本語記事:
http://0-9.tumblr.com/post/15614207218/js-jstestdriver
http://everyday-eachday.blogspot.jp/2011/12/jstestdriver.html
ダウンロードページで JsTestDriver-x.x.x.jar ってやつを落とす。ダウンロードしたファイルを ~/bin/JsTestDriver.jar みたいなパスに置く。コンソールから以下のコマンドでサーバーを起動。
$ java -jar ~/bin/JsTestDriver.jar --port 4224
ポート番号は適当でいいらしい。コマンド成功したら、適当なブラウザで http://localhost:4224/ を開く。そうすると
- Capture This Browser
- Capture This Browser in strict mode
ってテキストリンクが並んでる画面になるので好きな方をクリック。(普通は Capture This Browser でいいと思われ)そうするとそのブラウザをウォッチしているような状態になる。で、そのブラウザのエンジンでテストが実行される。
実際にテストしたいプロジェクトのディレクトリを作る。例えば以下のような構造にする。
|- jsTestDriver.conf
|- src
|--- hoge.js
|- test
|--- hoge_test.js
hoge.js が書きたいJavaScript。hoge_test.js がhoge.jsに対するテストを書くファイル。jsTestDriver.conf がjs-test-driverのためのファイル。テキストエディタで開き、以下のように記述。
server: http://localhost:4224
load:
- src/*.js
- test/*.js
コンソールに戻る。さっきサーバーを起動したプロセスウィンドウはそのままにしといて、新しいプロセスを起動。そっちで
$ cd プロジェクトのディレクトリへ
$ java -jar ~/bin/JsTestDriver.jar --tests all
するとテストが走って hoge_test.js に書いたテスト結果が表示される…予定なんだけど、この時点で hoge_test.js には何も書いてないのでエラーになるはず。
というわけで簡単なコードを書いてみる。
で、コンソールでコマンドを叩いてテストする。
$ java -jar ~/bin/JsTestDriver.jar --tests all
ちなみにここで'test should return true'
っていうのは各テスト単位の名前で、エラー時にコンソールに出力される。ちなみに文字列だからってマルチバイトは使えない。
assertなんちゃら
って関数でテストを実行してるんだけど、使えるassertionの一覧は以下に載ってる。
http://code.google.com/p/js-test-driver/wiki/Assertions
例えば assertTrue
だったら、引数の値が true
だったらテスト合格になる。
まだちょっと使ってみただけなので、もうちょい勉強して実務に生かしたい。
'test should return true'
となっているところ)は必ず**test
**で始まらないと、認識されないようです。