QA@IT

Jasmineを使ってPadrino上のJavaScriptをテストするには?

1184 PV

Padrino上でJavaScriptをヘビーに使ったアプリを作っています。JavaScriptのロジック部分にもテストを書きたいのですが、どのようにすればよいでしょう?

回答

PadrinoなどRubyアプリケーションであれば、rubygemsの jasmine を使うと導入が簡単です。

環境構築

Gemfile

gem "jasmine", :group => "test"

インストール

$ bundle install
$ bundle exec jasmine init

サンプルとなるJavaScriptとテストケースが自動生成されます。

$ tree public/javascripts/ spec/javascripts/
public/javascripts/
├── Player.js
└── Song.js
spec/javascripts/
├── PlayerSpec.js
├── helpers
│   └── SpecHelper.js
└── support
    └── jasmine.yml

また、RakefileにもJasmineのタスクが追加されます。

動作確認

rake jasmineを実行すると、8888番ポートでWEBrickが起動します。

$ bundle exec rake jasmine
your tests are here:
  http://localhost:8888/
[2012-05-24 11:11:35] INFO  WEBrick 1.3.1
[2012-05-24 11:11:35] INFO  ruby 1.9.3 (2012-04-20) [x86_64-darwin11.3.0]
[2012-05-24 11:11:35] INFO  WEBrick::HTTPServer#start: pid=16256 port=8888

ブラウザで http://localhost:8888/ にアクセスすると、サンプルとして用意されたPlayerSpec.jsに書かれたテストケースが走り、Player.jsをテストした結果を表示します。

まとめとリンク

これでGUI環境ではブラウザを使ってJavaScriptのテストを実行することができるようになりました。jasmine initでインストールされるサンプルは意外とヒントに満ちているので、捨てる前に目を通しておきましょう。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。