メモ:jasmine + Coffeescript でテストを書く.

テストと言っていいのか, BDD ではスペックというのが一般的なのかはよくわからないのですが, gem の jasmine でテスト環境を準備したのでメモ.

jasmine 自体の説明は公式といい感じのページあったので.

pivotal/jasmine · GitHub
Jasmineでテスティング | feedforce Engineers' blog

今回はスタンドアローンでなくて, gem でインストールして Ruby 環境で動くようにした.

スタンドアローンだと, 自分で HTML にテスト対象やスペックの Javascript とかを読み込ませないといけないのだが, gem のならワイルドカードでパスを設定して自動で読み込んでくれるようなので.

導入には書いてなかったが, Rails がないと駄目らしい. jasmine だけ入れて動かそうとすると jasmine non available というようなメッセージが出てくる.

gem install jasmine
gem install rails

後は, jasmine init を叩けばプロジェクトのサンプルと一緒に環境がセットアップされる. Rakefile でテストを実行できるので, rake jasmine:ci と打ち込む.

$ mkdir jasmine
$ cd jasmine
$ jasmine init
$ rake jasmine:ci
<ここにテスト結果が出力される>

rake jasmine と打ち込むと, サーバが起動して, テストを http://localhost:8888/ にアクセスすることで実行と結果の参照ができる. rake jasmine:ci はブラウザで見る面倒を省き, テスト結果をコンソール上に出力できるようにしてくれる. 内部的には Firefox を起動して実行して結果を得るようなことをしているようです.

ただ, 打ち込むの面倒なのでデフォルトの動作を設定する. Rakefile の先頭に以下の行を追加する.

task :default => "jasmine:ci"

これで, rake と打ち込んだだけで jasmine:ci が実行される.

ソースファイルとかのディレクトリが既にある場合, spec/javascripts/support/jasmine.yml にサンプルとともにディレクトリやテスト対象のファイルなどの設定が書かれているので, ここを変更する.

ちなみに, このファイルのパスは普通には変更できないようです. もしかしたら変更できるかも知れないんですが...

jasmine-jquery を入れれば jquery 操作に対するテストも簡単に書けるようになるようなので, 便利ですね.

velesin/jasmine-jquery · GitHub