SlideShare uma empresa Scribd logo
1 de 35
Sinatra とか Padrino とかで
 テストをどうしているか?
   - Padrino 黒ミサ in 神泉 -


                        2011/10/29 @ 神泉
                    Uchio Kondo (@udzura)
近藤うちお(@udzura)
●
    Rubyist(2年半ほど)
●
    Groovyに挫折
●
    現在Haskellを順調に挫折               柴犬のあくび

●
    富士マガ所属(ご近所)、
      雑誌を定期購読で買ってね!
●
    カルマ: Rack, Sinatra, Padrinoあたり
    Rails3, TDD, Linux, アジャイルとかも興味はあるんですよ……
近藤うちおさんのworks
●   ブロッグ http://blog.udzura.jp/
●   Padrino 日本語サイト翻訳リーダー
●   Padrino framework contributor
    ●   自称、 Padrino framework エバンジェリストJPです
●   RubyGems: rack-session-dbm
●   RubyGems: rspec-padrino
●   若干のふざけたウェッブサービス
●   WP on passenger、RSpec on PHPの記事書いた人
●   その他、 http://udzura.jp
今日は
●
    Enterprise Sinatra の話です
今日は
●
    アプリケーションのテストの話です
ところで、
●
    「単体テスト/結合テストなんて存在しない」
●   Toggeter
●   http://togetter.com/li/206083
今日の内容
●
    今日する話
    ●
        Sinatraでどういうテスト関連ライブラリを
        使ってきたのか?
●
    今日しない話
    ●
        単体テスト/結合テストって何?
    ●
        Sinatraに合ったテストプロセスとかって?
キ~ワ~ド
●   Rack::Test
●   Padrino framework
●   RSpec
●   Mocha
●   Machinist/Faker
●   Capybara
●   Sinatra::TestHelpers
●   RSpec::Padrino
Rack::Test
●
    Sinatra のテストの基本
    ●
        コントローラ/ルーティング
●
    こういうテストができる
要するに
●
    get “/hogehoge” を叩く
●
    RackのENVのモックが、 app.call を起動
●
    callで返ってきたRackレスポンスをオブジェク
    トに変換
●
    #last_request, #last_response などで取得でき
    る
●
    あとは普通に値を検査する
ところで
●
    Sinatra アップリケ~ションでテスト準備
    ●
        test/ なり spec/ なりディレクトリを掘る
    ●
        spec_helper.rb なりを準備
    ●   RSpec.configure do |conf|
    ●
        Rakefile なりを準備
    ●
        Gemfile なりを準備
    ●
        モデルなどを追加する度にテストファイルも作る
    ●
        ………
あなたと、
Padrinoのジェネレータを使う
●
    プロジェクトジェネレータの段階で
    テストライブラリ、モックライブラリを指定で
    きる
●
    コントローラ、モデルをジェネレートすれば
    一緒にテストも作ってくれる
●
    padrino rake test/spec コマンドを用意してくれ
    る
Sinatraでテスト
●
    Padrinoが便利、Padrinoに移行してみよう


            ~完~
とは言わず、
●
    具体的に何したか書きます
Padrinoの対応状況(0.10.5)
●   Testing libraries(-t)
    ●   bacon, shoulda, cucumber, testspec, riot, rspec,
        minitest
    ●   default: Test::Unit
●   Mocking libraries(-m)
    ●   rr, mocha
@udzura さんの例
●
    RSpec と Mocha です。
●
    なので、以降の例はRSpecでの話です。
Machinist/Faker
●   In `spec/spec_helper.rb`
●
    頭の方に



●
    RSpec.configureの直後に
blueprints.rb
●   spec_helper.rb と同じディレクトリ




●   詳細ググろう
●   そして、 User.make とかそんな感じ
普通に使えました
Capyara
●   In `spec/spec_helper.rb`
●
    頭の方に



●
    受け入れテスト_spec.rbに


●
    #visit, #current_path, #page など Capybara DSL
普通に使えました(2)
Sinatra::TestHelpers
●
    sinatra-contrib gem に含まれる


●
    インクル~ドする



●
    便利なショートカットヘルパー集です
    ●
        #session, #last_env など
具体的には #mock_app が便利




●   動的アプリ定義、でも、 Padrino では使わないかなあ
●   むしろ Sinatra で使うためのgemで使えそう
RSpec::Padrino
●
    rspec-rails の大変便利なマッチャー/ヘルパーを
    Padrinoに合わせて移植しよう計画
●
    拙作
●
    バージョン 0.0.1
●
    というか、 route_to とか assigns ぐらいしか
    できていない
こんなん
感想
●
    rspec-rails って多機能で便利なんですね
頑張ります
●   https://github.com/udzura/rspec-padrino
まとめ
●
    Sinatra、便利アイテムが使えないかと思いきや
    Railsで使えるものが意外と使える
    ●
        Rails の肩に乗りまくる
●
    ないものはない
●
    ないものは、ない
    ●
        作って「俺スゲー」するチャンス!!!1
●
    正直 Padrino 便利、テストが必要になってきた
    ら導入をご一考ください
おまけ
最新Padrino情報
●
    スタートPadrinoの資料が見られます
●   http://www.slideshare.net/udzura/startpadrino
●
    Sinatra、そしてPadrinoのイマが分かる!
Padrino重要情報
●
    Padrino 黒ミサ in 京都
●   2011/12/10




http://atnd.org/events/21442
東京、そして京都で連続イベント
●
    Padrino 、流行ってますね!




                        W
                        A
                        F
Padrinoをよろしくね
●
    若いソフトウェアなので、皆さんのフィード
    バックがまだまだ必要です!
●
    二郎に飽きたあなたもぜひ!
●
    ハッカソンしたいですね(チラッ
__END__
●
    ご清聴ありがとうございました

Mais conteúdo relacionado

Mais procurados

今日から業務で使える17の運用系Linuxツール、そして円環の理
今日から業務で使える17の運用系Linuxツール、そして円環の理今日から業務で使える17の運用系Linuxツール、そして円環の理
今日から業務で使える17の運用系Linuxツール、そして円環の理Masahito Zembutsu
 
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由Kenichi Mukai
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Hitoshi Kurokawa
 
Serfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwwwSerfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwwwMasahito Zembutsu
 
Pythonで検索エンジン2
Pythonで検索エンジン2Pythonで検索エンジン2
Pythonで検索エンジン2Yasukazu Kawasaki
 
Apacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasiaApacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasia鉄次 尾形
 
Dive into the Cloud with our buddy, lovely PHP!
Dive into the Cloud with our buddy, lovely PHP!Dive into the Cloud with our buddy, lovely PHP!
Dive into the Cloud with our buddy, lovely PHP!Sotaro Omura
 
20170111 macnica networks-nohara_rancher_usecase
20170111 macnica networks-nohara_rancher_usecase20170111 macnica networks-nohara_rancher_usecase
20170111 macnica networks-nohara_rancher_usecaseMinehiko Nohara
 
魔法少女 Laravel
魔法少女 Laravel魔法少女 Laravel
魔法少女 LaravelKenichi Mukai
 
人間たちとsystemd
人間たちとsystemd人間たちとsystemd
人間たちとsystemdUchio Kondo
 
テストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったことテストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったことYuta Ohashi
 
Wakayama.rbボードの使い方
Wakayama.rbボードの使い方Wakayama.rbボードの使い方
Wakayama.rbボードの使い方三七男 山本
 
サーバサイドNodeの使い道
サーバサイドNodeの使い道サーバサイドNodeの使い道
サーバサイドNodeの使い道pospome
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口Sunao Tomita
 
Swiftからlibuvを呼び出すTIPS
Swiftからlibuvを呼び出すTIPSSwiftからlibuvを呼び出すTIPS
Swiftからlibuvを呼び出すTIPSjugemjugemjugem
 
魔法少女 Laravel 2014
魔法少女 Laravel 2014魔法少女 Laravel 2014
魔法少女 Laravel 2014Kenichi Mukai
 
Arduino を PHP で制御する
Arduino を PHP で制御するArduino を PHP で制御する
Arduino を PHP で制御するKenichi Ahagon
 
Rubyボードハンズオン
RubyボードハンズオンRubyボードハンズオン
Rubyボードハンズオン三七男 山本
 
RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)三七男 山本
 
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話leverages_event
 

Mais procurados (20)

今日から業務で使える17の運用系Linuxツール、そして円環の理
今日から業務で使える17の運用系Linuxツール、そして円環の理今日から業務で使える17の運用系Linuxツール、そして円環の理
今日から業務で使える17の運用系Linuxツール、そして円環の理
 
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
 
Serfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwwwSerfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwww
 
Pythonで検索エンジン2
Pythonで検索エンジン2Pythonで検索エンジン2
Pythonで検索エンジン2
 
Apacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasiaApacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasia
 
Dive into the Cloud with our buddy, lovely PHP!
Dive into the Cloud with our buddy, lovely PHP!Dive into the Cloud with our buddy, lovely PHP!
Dive into the Cloud with our buddy, lovely PHP!
 
20170111 macnica networks-nohara_rancher_usecase
20170111 macnica networks-nohara_rancher_usecase20170111 macnica networks-nohara_rancher_usecase
20170111 macnica networks-nohara_rancher_usecase
 
魔法少女 Laravel
魔法少女 Laravel魔法少女 Laravel
魔法少女 Laravel
 
人間たちとsystemd
人間たちとsystemd人間たちとsystemd
人間たちとsystemd
 
テストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったことテストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったこと
 
Wakayama.rbボードの使い方
Wakayama.rbボードの使い方Wakayama.rbボードの使い方
Wakayama.rbボードの使い方
 
サーバサイドNodeの使い道
サーバサイドNodeの使い道サーバサイドNodeの使い道
サーバサイドNodeの使い道
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口
 
Swiftからlibuvを呼び出すTIPS
Swiftからlibuvを呼び出すTIPSSwiftからlibuvを呼び出すTIPS
Swiftからlibuvを呼び出すTIPS
 
魔法少女 Laravel 2014
魔法少女 Laravel 2014魔法少女 Laravel 2014
魔法少女 Laravel 2014
 
Arduino を PHP で制御する
Arduino を PHP で制御するArduino を PHP で制御する
Arduino を PHP で制御する
 
Rubyボードハンズオン
RubyボードハンズオンRubyボードハンズオン
Rubyボードハンズオン
 
RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)
 
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話
 

Destaque

otomodachi-kakumei
otomodachi-kakumeiotomodachi-kakumei
otomodachi-kakumeiUchio Kondo
 
ぱろっと、Padrinoやめるってよ
ぱろっと、Padrinoやめるってよぱろっと、Padrinoやめるってよ
ぱろっと、Padrinoやめるってよparrotstudio
 
SixSigma-Institute.org-CSSMBBcc3f574035-11670116734225
SixSigma-Institute.org-CSSMBBcc3f574035-11670116734225SixSigma-Institute.org-CSSMBBcc3f574035-11670116734225
SixSigma-Institute.org-CSSMBBcc3f574035-11670116734225Sunit Chaudhury
 
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08) 私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08) parrotstudio
 
素敵なスピーカーになるために: プレゼン道場3
素敵なスピーカーになるために: プレゼン道場3素敵なスピーカーになるために: プレゼン道場3
素敵なスピーカーになるために: プレゼン道場3Shoe-g Ueyama
 
The On-page of SEO for Ecommerce - Adam Audette - SearchFest 2013
The On-page of SEO for Ecommerce - Adam Audette - SearchFest 2013The On-page of SEO for Ecommerce - Adam Audette - SearchFest 2013
The On-page of SEO for Ecommerce - Adam Audette - SearchFest 2013Adam Audette
 
Java女子部 will take over the world (野望)
Java女子部 will take over the world (野望)Java女子部 will take over the world (野望)
Java女子部 will take over the world (野望)Ayana Yokota
 
Jenkinsのおっさんを眺めるだけ
Jenkinsのおっさんを眺めるだけJenkinsのおっさんを眺めるだけ
Jenkinsのおっさんを眺めるだけNobukazu Hanada
 
Automation in healthcare industry
Automation in healthcare industryAutomation in healthcare industry
Automation in healthcare industryManish Arora
 
混沌を活かす技術と思想の温故知新 -熱機関から携帯電話、そして未来のICTへ-
混沌を活かす技術と思想の温故知新 -熱機関から携帯電話、そして未来のICTへ-混沌を活かす技術と思想の温故知新 -熱機関から携帯電話、そして未来のICTへ-
混沌を活かす技術と思想の温故知新 -熱機関から携帯電話、そして未来のICTへ-京都大学大学院情報学研究科数理工学専攻
 
"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本
"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本
"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本parrotstudio
 
Secrets Of Power Negotiating
Secrets Of Power NegotiatingSecrets Of Power Negotiating
Secrets Of Power Negotiatingkenddas
 
True or False? 10 M&A assumptions private companies should be testing
True or False? 10 M&A assumptions private companies should be testingTrue or False? 10 M&A assumptions private companies should be testing
True or False? 10 M&A assumptions private companies should be testingDeloitte Canada
 
エンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことエンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことHirata Tomoko
 

Destaque (20)

otomodachi-kakumei
otomodachi-kakumeiotomodachi-kakumei
otomodachi-kakumei
 
ぱろっと、Padrinoやめるってよ
ぱろっと、Padrinoやめるってよぱろっと、Padrinoやめるってよ
ぱろっと、Padrinoやめるってよ
 
Glo
GloGlo
Glo
 
サイエンスイベントのためのプログラム・デザイン手法
サイエンスイベントのためのプログラム・デザイン手法サイエンスイベントのためのプログラム・デザイン手法
サイエンスイベントのためのプログラム・デザイン手法
 
SixSigma-Institute.org-CSSMBBcc3f574035-11670116734225
SixSigma-Institute.org-CSSMBBcc3f574035-11670116734225SixSigma-Institute.org-CSSMBBcc3f574035-11670116734225
SixSigma-Institute.org-CSSMBBcc3f574035-11670116734225
 
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08) 私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
 
素敵なスピーカーになるために: プレゼン道場3
素敵なスピーカーになるために: プレゼン道場3素敵なスピーカーになるために: プレゼン道場3
素敵なスピーカーになるために: プレゼン道場3
 
Crystal
CrystalCrystal
Crystal
 
The On-page of SEO for Ecommerce - Adam Audette - SearchFest 2013
The On-page of SEO for Ecommerce - Adam Audette - SearchFest 2013The On-page of SEO for Ecommerce - Adam Audette - SearchFest 2013
The On-page of SEO for Ecommerce - Adam Audette - SearchFest 2013
 
Java女子部 will take over the world (野望)
Java女子部 will take over the world (野望)Java女子部 will take over the world (野望)
Java女子部 will take over the world (野望)
 
Jenkinsのおっさんを眺めるだけ
Jenkinsのおっさんを眺めるだけJenkinsのおっさんを眺めるだけ
Jenkinsのおっさんを眺めるだけ
 
Automation in healthcare industry
Automation in healthcare industryAutomation in healthcare industry
Automation in healthcare industry
 
混沌を活かす技術と思想の温故知新 -熱機関から携帯電話、そして未来のICTへ-
混沌を活かす技術と思想の温故知新 -熱機関から携帯電話、そして未来のICTへ-混沌を活かす技術と思想の温故知新 -熱機関から携帯電話、そして未来のICTへ-
混沌を活かす技術と思想の温故知新 -熱機関から携帯電話、そして未来のICTへ-
 
"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本
"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本
"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本
 
離散数理分野(研究室)の案内
離散数理分野(研究室)の案内離散数理分野(研究室)の案内
離散数理分野(研究室)の案内
 
数理解析分野(研究室)の案内
数理解析分野(研究室)の案内数理解析分野(研究室)の案内
数理解析分野(研究室)の案内
 
ITと数学で社会に役立つ数理最適化
ITと数学で社会に役立つ数理最適化ITと数学で社会に役立つ数理最適化
ITと数学で社会に役立つ数理最適化
 
Secrets Of Power Negotiating
Secrets Of Power NegotiatingSecrets Of Power Negotiating
Secrets Of Power Negotiating
 
True or False? 10 M&A assumptions private companies should be testing
True or False? 10 M&A assumptions private companies should be testingTrue or False? 10 M&A assumptions private companies should be testing
True or False? 10 M&A assumptions private companies should be testing
 
エンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことエンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったこと
 

Semelhante a Testing in Sinatra

るりまの1/nはMatsue.rbでできています。
るりまの1/nはMatsue.rbでできています。るりまの1/nはMatsue.rbでできています。
るりまの1/nはMatsue.rbでできています。Sho Hashimoto
 
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07Jun Omae
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
NodeにしましょうYuzo Hebishima
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo LinuxについてTakuto Matsuu
 
capybara で快適なテスト生活を
capybara で快適なテスト生活をcapybara で快適なテスト生活を
capybara で快適なテスト生活をRyunosuke SATO
 
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションTetsuya Morimoto
 
PHP Application E2E with Capybara
PHP Application E2E with CapybaraPHP Application E2E with Capybara
PHP Application E2E with CapybaraYoshiaki Yoshida
 
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方サードパーティパッケージの歩き方
サードパーティパッケージの歩き方Takesxi Sximada
 
CSRを自動生成する!
CSRを自動生成する!CSRを自動生成する!
CSRを自動生成する!Taichi Ishitani
 
コミケの取りまとめをしたので
コミケの取りまとめをしたのでコミケの取りまとめをしたので
コミケの取りまとめをしたのでKenichiro MATOHARA
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む2bo 2bo
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, CodereadingHiro Yoshioka
 
78tch
78tch78tch
78tch78tch
 
分散Key/Valueストア Kai 事例紹介
分散Key/Valueストア Kai事例紹介分散Key/Valueストア Kai事例紹介
分散Key/Valueストア Kai 事例紹介Tomoya Hashimoto
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールdcubeio
 
Project Sumatra - JavaOne2012報告会 #j1rep
Project Sumatra - JavaOne2012報告会 #j1repProject Sumatra - JavaOne2012報告会 #j1rep
Project Sumatra - JavaOne2012報告会 #j1repYuji Kubota
 

Semelhante a Testing in Sinatra (20)

るりまの1/nはMatsue.rbでできています。
るりまの1/nはMatsue.rbでできています。るりまの1/nはMatsue.rbでできています。
るりまの1/nはMatsue.rbでできています。
 
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
 
capybara で快適なテスト生活を
capybara で快適なテスト生活をcapybara で快適なテスト生活を
capybara で快適なテスト生活を
 
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
 
Riscv+fpga200606
Riscv+fpga200606Riscv+fpga200606
Riscv+fpga200606
 
RgGen ご紹介
RgGen ご紹介RgGen ご紹介
RgGen ご紹介
 
PHP Application E2E with Capybara
PHP Application E2E with CapybaraPHP Application E2E with Capybara
PHP Application E2E with Capybara
 
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
 
kyotovim#1
kyotovim#1kyotovim#1
kyotovim#1
 
CSRを自動生成する!
CSRを自動生成する!CSRを自動生成する!
CSRを自動生成する!
 
コミケの取りまとめをしたので
コミケの取りまとめをしたのでコミケの取りまとめをしたので
コミケの取りまとめをしたので
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
 
78tch
78tch78tch
78tch
 
分散Key/Valueストア Kai 事例紹介
分散Key/Valueストア Kai事例紹介分散Key/Valueストア Kai事例紹介
分散Key/Valueストア Kai 事例紹介
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
 
Mishimasyk 3 20140705
Mishimasyk 3 20140705Mishimasyk 3 20140705
Mishimasyk 3 20140705
 
Project Sumatra - JavaOne2012報告会 #j1rep
Project Sumatra - JavaOne2012報告会 #j1repProject Sumatra - JavaOne2012報告会 #j1rep
Project Sumatra - JavaOne2012報告会 #j1rep
 

Mais de Uchio Kondo

ペパボのサービスとRuby
ペパボのサービスとRubyペパボのサービスとRuby
ペパボのサービスとRubyUchio Kondo
 
minneで学ぶクラウド脳
minneで学ぶクラウド脳minneで学ぶクラウド脳
minneで学ぶクラウド脳Uchio Kondo
 
インフラ自動化とHashicorp tools
インフラ自動化とHashicorp toolsインフラ自動化とHashicorp tools
インフラ自動化とHashicorp toolsUchio Kondo
 
Puppet of-2015-forupload
Puppet of-2015-foruploadPuppet of-2015-forupload
Puppet of-2015-foruploadUchio Kondo
 
Hashicorpツールズ
HashicorpツールズHashicorpツールズ
HashicorpツールズUchio Kondo
 
Consul は 全自動オーケストレーションの 夢を見るか?
Consul は 全自動オーケストレーションの 夢を見るか?Consul は 全自動オーケストレーションの 夢を見るか?
Consul は 全自動オーケストレーションの 夢を見るか?Uchio Kondo
 
Drone.io のご紹介
Drone.io のご紹介Drone.io のご紹介
Drone.io のご紹介Uchio Kondo
 
ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例Uchio Kondo
 
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LLRubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LLUchio Kondo
 

Mais de Uchio Kondo (9)

ペパボのサービスとRuby
ペパボのサービスとRubyペパボのサービスとRuby
ペパボのサービスとRuby
 
minneで学ぶクラウド脳
minneで学ぶクラウド脳minneで学ぶクラウド脳
minneで学ぶクラウド脳
 
インフラ自動化とHashicorp tools
インフラ自動化とHashicorp toolsインフラ自動化とHashicorp tools
インフラ自動化とHashicorp tools
 
Puppet of-2015-forupload
Puppet of-2015-foruploadPuppet of-2015-forupload
Puppet of-2015-forupload
 
Hashicorpツールズ
HashicorpツールズHashicorpツールズ
Hashicorpツールズ
 
Consul は 全自動オーケストレーションの 夢を見るか?
Consul は 全自動オーケストレーションの 夢を見るか?Consul は 全自動オーケストレーションの 夢を見るか?
Consul は 全自動オーケストレーションの 夢を見るか?
 
Drone.io のご紹介
Drone.io のご紹介Drone.io のご紹介
Drone.io のご紹介
 
ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例
 
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LLRubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
 

Último

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 

Último (8)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 

Testing in Sinatra

  • 1. Sinatra とか Padrino とかで テストをどうしているか? - Padrino 黒ミサ in 神泉 - 2011/10/29 @ 神泉 Uchio Kondo (@udzura)
  • 2. 近藤うちお(@udzura) ● Rubyist(2年半ほど) ● Groovyに挫折 ● 現在Haskellを順調に挫折 柴犬のあくび ● 富士マガ所属(ご近所)、   雑誌を定期購読で買ってね! ● カルマ: Rack, Sinatra, Padrinoあたり Rails3, TDD, Linux, アジャイルとかも興味はあるんですよ……
  • 3. 近藤うちおさんのworks ● ブロッグ http://blog.udzura.jp/ ● Padrino 日本語サイト翻訳リーダー ● Padrino framework contributor ● 自称、 Padrino framework エバンジェリストJPです ● RubyGems: rack-session-dbm ● RubyGems: rspec-padrino ● 若干のふざけたウェッブサービス ● WP on passenger、RSpec on PHPの記事書いた人 ● その他、 http://udzura.jp
  • 4. 今日は ● Enterprise Sinatra の話です
  • 5. 今日は ● アプリケーションのテストの話です
  • 6. ところで、 ● 「単体テスト/結合テストなんて存在しない」 ● Toggeter ● http://togetter.com/li/206083
  • 7. 今日の内容 ● 今日する話 ● Sinatraでどういうテスト関連ライブラリを 使ってきたのか? ● 今日しない話 ● 単体テスト/結合テストって何? ● Sinatraに合ったテストプロセスとかって?
  • 8. キ~ワ~ド ● Rack::Test ● Padrino framework ● RSpec ● Mocha ● Machinist/Faker ● Capybara ● Sinatra::TestHelpers ● RSpec::Padrino
  • 9. Rack::Test ● Sinatra のテストの基本 ● コントローラ/ルーティング ● こういうテストができる
  • 10. 要するに ● get “/hogehoge” を叩く ● RackのENVのモックが、 app.call を起動 ● callで返ってきたRackレスポンスをオブジェク トに変換 ● #last_request, #last_response などで取得でき る ● あとは普通に値を検査する
  • 11. ところで ● Sinatra アップリケ~ションでテスト準備 ● test/ なり spec/ なりディレクトリを掘る ● spec_helper.rb なりを準備 ● RSpec.configure do |conf| ● Rakefile なりを準備 ● Gemfile なりを準備 ● モデルなどを追加する度にテストファイルも作る ● ………
  • 13. Padrinoのジェネレータを使う ● プロジェクトジェネレータの段階で テストライブラリ、モックライブラリを指定で きる ● コントローラ、モデルをジェネレートすれば 一緒にテストも作ってくれる ● padrino rake test/spec コマンドを用意してくれ る
  • 14. Sinatraでテスト ● Padrinoが便利、Padrinoに移行してみよう         ~完~
  • 15. とは言わず、 ● 具体的に何したか書きます
  • 16. Padrinoの対応状況(0.10.5) ● Testing libraries(-t) ● bacon, shoulda, cucumber, testspec, riot, rspec, minitest ● default: Test::Unit ● Mocking libraries(-m) ● rr, mocha
  • 17. @udzura さんの例 ● RSpec と Mocha です。 ● なので、以降の例はRSpecでの話です。
  • 18. Machinist/Faker ● In `spec/spec_helper.rb` ● 頭の方に ● RSpec.configureの直後に
  • 19. blueprints.rb ● spec_helper.rb と同じディレクトリ ● 詳細ググろう ● そして、 User.make とかそんな感じ
  • 21. Capyara ● In `spec/spec_helper.rb` ● 頭の方に ● 受け入れテスト_spec.rbに ● #visit, #current_path, #page など Capybara DSL
  • 23. Sinatra::TestHelpers ● sinatra-contrib gem に含まれる ● インクル~ドする ● 便利なショートカットヘルパー集です ● #session, #last_env など
  • 24. 具体的には #mock_app が便利 ● 動的アプリ定義、でも、 Padrino では使わないかなあ ● むしろ Sinatra で使うためのgemで使えそう
  • 25. RSpec::Padrino ● rspec-rails の大変便利なマッチャー/ヘルパーを Padrinoに合わせて移植しよう計画 ● 拙作 ● バージョン 0.0.1 ● というか、 route_to とか assigns ぐらいしか できていない
  • 27. 感想 ● rspec-rails って多機能で便利なんですね
  • 28. 頑張ります ● https://github.com/udzura/rspec-padrino
  • 29. まとめ ● Sinatra、便利アイテムが使えないかと思いきや Railsで使えるものが意外と使える ● Rails の肩に乗りまくる ● ないものはない ● ないものは、ない ● 作って「俺スゲー」するチャンス!!!1 ● 正直 Padrino 便利、テストが必要になってきた ら導入をご一考ください
  • 31. 最新Padrino情報 ● スタートPadrinoの資料が見られます ● http://www.slideshare.net/udzura/startpadrino ● Sinatra、そしてPadrinoのイマが分かる!
  • 32. Padrino重要情報 ● Padrino 黒ミサ in 京都 ● 2011/12/10 http://atnd.org/events/21442
  • 33. 東京、そして京都で連続イベント ● Padrino 、流行ってますね! W A F
  • 34. Padrinoをよろしくね ● 若いソフトウェアなので、皆さんのフィード バックがまだまだ必要です! ● 二郎に飽きたあなたもぜひ! ● ハッカソンしたいですね(チラッ
  • 35. __END__ ● ご清聴ありがとうございました