Capybaraで快適な
         テスト生活を



http://www.flickr.com/photos/capybarajp/5229619542

 2012.07.07                                         Ruby札幌
 岡山Ruby会議01                                 佐藤 竜之介(@tricknotes)
提供

From Sapporo, with Love for Ruby.


 Ruby札幌
About me
よろしく
お願いします
今日の話
webアプリケー
ションのEnd-to-
Endテスト につい
て、私の取り組みを
  ご紹介します
対象者

これから仕事でも
  Rubyを
使ってみたいひと
End-to-End
 テスト
テスト項目管理ツール
良い点

ユーザが使うであろうシナ
  リオを押さえてある

すべてのコンポーネントを
統合した状態の試験である
最大の欠点

自動化できない
automatization
     http://www.flickr.com/photos/hidekazufuruki/6881051786
http://jnicklas.github.com/capybara/
?
       ?
Capybara
README 読んでね


  see: https://github.com/jnicklas/
capybara/blob/master/README.md
簡単に。
capybara-
selenium      webkit


      capybara


cucumber         RSpec
drivers
ブラウザ
  selenium
エミュレータ
       capybara-webkit
       capybara-zombie
       poltergeist
https://github.com/jnicklas/capybara/wiki/Available-drivers
using capybara

ブラウザでの操作やエ
ミュレータでの操作が、
 全部 Ruby で書ける
例えばこんな感じ
自分が経験した話


どういうところで実施し
  たかというと...
rails2.3 から rails
   3.2 への移行
大変
いろいろ壊れる
例えば...
 scope
 routing
 acts_as_paranoid
 will_paginate
 ...
アプリケーションコード
 に依存しないテスト
 ≠rails のテスト
capybara
       テスト
仕様化          検証
      検証


移行前          移行後
 rails2        rails3
さらに…
アプリケーションコード
 に依存しないテスト
 ≠rails のテスト
例えば...
         capybara
    テスト

               etc
おまけ
とは言っても、
     テスト結果を
Excelで欲しい人のために

https://gist.github.com/3062485
まとめ
✓ capybaraは End-to-End
  テストのためのライブラリです
✓ capybaraは rails 以外にも
  使えます
http://www.flickr.com/photos/sakura-kame/479871795/




     快適なテスト生活を!

capybara で快適なテスト生活を

Editor's Notes

  • #2 \n
  • #3 \n
  • #4 今日ぼくがお話するテーマなんですが、\n
  • #5 \n
  • #6 普段は Ruby と JavaScript を使ってお仕事をしています\n
  • #7 \n
  • #8 \n
  • #9 \n
  • #10 今日ぼくがお話するテーマなんですが、\n
  • #11 \n
  • #12 \n
  • #13 \n
  • #14 今日ぼくがお話するテーマなんですが、\n
  • #15 \n
  • #16 \n
  • #17 \n
  • #18 \n
  • #19 \n
  • #20 また、クライアントサイドで大規模開発を行う際の、パターンの一実装として、 backbone.js というフレームワークも出ています。\nしっかり使ったわけではありませんが、さきほどの nodejitsu の記事の中でも紹介されています。\n
  • #21 では、ここで、パターンが大事である理由について考えてみましょう。\n
  • #22 \n
  • #23 \n
  • #24 \n
  • #25 \n
  • #26 \n
  • #27 また、クライアントサイドで大規模開発を行う際の、パターンの一実装として、 backbone.js というフレームワークも出ています。\nしっかり使ったわけではありませんが、さきほどの nodejitsu の記事の中でも紹介されています。\n
  • #28 \n
  • #29 \n
  • #30 また、クライアントサイドで大規模開発を行う際の、パターンの一実装として、 backbone.js というフレームワークも出ています。\nしっかり使ったわけではありませんが、さきほどの nodejitsu の記事の中でも紹介されています。\n
  • #31 また、クライアントサイドで大規模開発を行う際の、パターンの一実装として、 backbone.js というフレームワークも出ています。\nしっかり使ったわけではありませんが、さきほどの nodejitsu の記事の中でも紹介されています。\n
  • #32 また、クライアントサイドで大規模開発を行う際の、パターンの一実装として、 backbone.js というフレームワークも出ています。\nしっかり使ったわけではありませんが、さきほどの nodejitsu の記事の中でも紹介されています。\n
  • #33 また、クライアントサイドで大規模開発を行う際の、パターンの一実装として、 backbone.js というフレームワークも出ています。\nしっかり使ったわけではありませんが、さきほどの nodejitsu の記事の中でも紹介されています。\n
  • #34 また、クライアントサイドで大規模開発を行う際の、パターンの一実装として、 backbone.js というフレームワークも出ています。\nしっかり使ったわけではありませんが、さきほどの nodejitsu の記事の中でも紹介されています。\n
  • #35 また、クライアントサイドで大規模開発を行う際の、パターンの一実装として、 backbone.js というフレームワークも出ています。\nしっかり使ったわけではありませんが、さきほどの nodejitsu の記事の中でも紹介されています。\n
  • #36 また、クライアントサイドで大規模開発を行う際の、パターンの一実装として、 backbone.js というフレームワークも出ています。\nしっかり使ったわけではありませんが、さきほどの nodejitsu の記事の中でも紹介されています。\n
  • #37 今日ぼくがお話するテーマなんですが、\n
  • #38 また、クライアントサイドで大規模開発を行う際の、パターンの一実装として、 backbone.js というフレームワークも出ています。\nしっかり使ったわけではありませんが、さきほどの nodejitsu の記事の中でも紹介されています。\n
  • #39 また、クライアントサイドで大規模開発を行う際の、パターンの一実装として、 backbone.js というフレームワークも出ています。\nしっかり使ったわけではありませんが、さきほどの nodejitsu の記事の中でも紹介されています。\n
  • #40 \n
  • #41 \n
  • #42 \n
  • #43 今日ぼくがお話するテーマなんですが、\n
  • #44 \n
  • #45 \n