--- layout: old_post title: rails plugin javascript_test - script.aculo.usのunittest.jsでTDD&BDD permalink: /tatsuya/show/411-rails-plugin-javascript-test-script-aculo-us-unittest-js-tdd-bdd ---
via Dr Nic - Autotesting Javascript in Rails
script.aculo.usのunittest.jsを使ったRailsプラグインの javascript_test なかなか良さそう。generatorでテストのひな形作成、auto_testに対応してくれる。unittest.js単体もBDD的な記述、ベンチマーク、辺りが良い。
#インストール ruby script/plugin install javascript_test mkdir test/javascript ln -s vendor/plugins/javascript_test/assets/ test/javascript/assets #テスト作成 ruby script/generate javascript_test hoge > create test/javascript/hoge_test.html > create public/javascripts/hoge.js #テスト書いて # test/javascript/hoge_test.html testTruth: function() {with(this) { assertEqual(X, "hoge"); }} #実際のjsコード # public/javascripts/hoge.js X = "hoge"; #テスト実行 rake test:javascripts
手元のMacだとSafariとFireFoxが自動で立ち上がって、テスト結果が表示される筈
BDD的に書きたくても大丈夫。String, Array, Number辺りの基本クラスを拡張して、shouldEqualみたいなメソッドを追加してくれる。
Test.context("BDD-style testing",{ "setup": function(){ console.log("Now setup!!"); hoge = "Test"; }, "teardown": function(){ console.log("Now teardown!!"); }, "should automatically add methods to strings": function(){ hoge.shouldEqual("Test"); hoge.shouldNotEqual("HoHoHo"); hoge.shouldNotBeNull(); hoge.shouldBeA(String); hoge.shouldNotBeA(Number); } });
unittest.jsについて、詳細はこちらのサイトが詳しい。