JavaScript Railsで使えるGem RubyOnRailsの開発環境

Rails3.2でJasmineをつかってCoffeeScriptをテスト~jasminerice

投稿日:

 

 

#261 Testing JavaScript with Jasmine (revised)

 

addyosmani.github.com/backbone-fundamentals/#unit-testing

github.com/bradphelan/jasminerice

JasmineはJavascript用のテストフレームワーク PlayFramework 1.2とかでも採用されてた

JasminericeはJasmineをRubyから使えるgemでjasmine-jqueryというjquery用のライブラリを含んでいるらしい

インストール

bundle

generate ファイル

できるファイルはこちら

使い方

spec.js.coffeeにapp/assets/javascriptsのファイルを追加する

 

rails sでサーバを起動しサーバアドレス/jasmineにアクセスする

2013-01-21_20h16_02

fooがみつからないとか言われる

これはJasmineがサンプルのfoo_spec.js.coffeeに書いてあるfoo.js.coffeeを探しにいってるけど見つからないから

そこで、app/assets/javascripts/foo.js.coffeeをつくってみる(いまは空のファイルでOK)

2013-01-21_20h22_30

こんどはbarがないといわれるので、app/assets/javascripts/bar.js.coffeeもつくる

こんどはテストが実行されるけど失敗

テスト駆動開発では、まずテストを通して失敗→テストを成功させる→リファクタリングの手順ですすむ

エラーからテストが実行されたということは一歩進んだって意味

2013-01-21_20h25_19

サンプルでテストをパスしてみる

順番にテストを成功させていく

まず上のエラーから読んでいく

jQueryが定義されていないということなので、spec.js.coffeeの方でライブラリを読み込むことにした

一応、jqueryとjquery_ujsを読み込んでおく

ブラウザをリロードするとエラーメッセージが変わってる

クラスFooが定義されていないということなので定義する

まだメッセージは変わらない。CoffeeScriptのコンパイラがファイルごとにスクリプトを(funcion(){}).callでくくってしまうため、他のファイルから他のファイルの名前を認識できないから。これを破るにはグローバルな空間に名前をつければいい

今度はエラーメッセージが変わる

そこで、メソッドbarを定義する

つぎのメッセージは

falseを返してほしかったのにundefinedだったということなので、barがfalseを返すようにする

やっと1個テストをパスした

2013-01-21_21h09_29

次のエラーメッセージもだいたい同じなので

同じように テストをパスすると

大変気持ちがいい

2013-01-21_21h12_37

あとはgitにコミットしてから、テストグリーンを維持しつつコードを改良していく(リファクタリング)

JasmineのDSLとか詳しい使い方は公式へ

pivotal.github.com/jasmine/

-JavaScript, Railsで使えるGem, RubyOnRailsの開発環境
-

執筆者:

関連記事

no image

Rails3.2でBackbone.jsとPrivate_pubでToDoアプリをリアルタイム化(できた!)

参考 Rails3.2でリアルタイムメッセージング~Private_pub、Faye Rails3.2とBackbone.jsでToDoアプリを作ってみた~backbone-on-rails &nbs …

no image

Carrierwaveでpdfのサムネイルを作成する

Ubuntu ServerのGuardからGrowl for Windowsにネットワーク経由で通知する

github.com/guard/guard 普段はWindows7から仮想環境(VirtualBox)のUbuntu Server 12.04.1へputtyで接続して開発してます. Virtual …

Rails3.2でhtml5で取得した位置情報をAjaxで住所表示する~geocoder

    HTML5ではブラウザからユーザーのPCの位置情報を取得することができるGeoLocation APIというものがある (もちろんデフォルトではユーザーに確認をする設定にな …

no image

Git用サーバのgitoliteをインストール

環境 ubuntu server 12.04 参考 gitoliteによるgitサーバ構築、および、使用方法 目次1 インストール2 クライアントでssh鍵作成3 クライアントのpub鍵をサーバへ4 …