JasmineによるJavascriptテスト駆動開発
-
Upload
yoichi-toyota -
Category
Technology
-
view
2.534 -
download
4
Transcript of JasmineによるJavascriptテスト駆動開発
Xtone ltd. 下っ端 豊田陽一
Javascriptで テスト駆動開発、 出来てますか?
テストツール何使おう… イベント駆動のテストどうしよう…
そもそも テスト駆動開発が出来る スタートラインが ないよね
Ruby on rails ◦ テストを動かす環境として ◦ Assetsパイプラインを前提
Backbone.js ◦ Javascript MVCフレームワーク
Jasmine ◦ Javascriptテストツール ◦ Rails上で動かすgemがある ◦ Rspecみたいな文法
ニコ○コ動画のコメントみたいなものを流すためのCanvasライブラリを作ってみた ◦ https://github.com/rswisteria/CommentView
テストはブラウザ上で実行 ◦ テストページを返すWebサーバを起動 ◦ $ bundle exec rake jasmine ◦ 上記コマンド実行後、8888ポートに接続 screenコマンドとか利用して動かしっぱなしにしておくといいかと
describe~itみたいな記述でBDD ◦ Rspecみたいな感じ
実際のHTMLの描画を伴うテスト ◦ Jasmine-domプラグインを利用 ◦ 実際にブラウザ上に描画して実行する
あとは コードを見ながら 説明します
setFixture関数にDOMオブジェクト渡す ◦ Sandbox関数でHTMLからDOMオブジェクトを簡単に作れる
waitsFor~run関数を使う waitsFor ◦ 関数と時間を渡す ◦ 関数がtrueを返す or 時間が経過するまで待つ
run ◦ 関数を渡す ◦ テスト用の単一の実行キューに処理を突っ込む ◦ waitsForとかがここに入れないと反映されない
まとめ
すぐにテストが 動く環境がないと TDDのハードルは 高い
Backbone.jsと Jasmineと Ruby on Railsで すぐに動く環境を
値のアサーションが 出来なくても テスト(的な何か) 書くべき