Submit Search
Testing in Sinatra
•
4 likes
•
6,335 views
Uchio Kondo
Follow
@ TokyuRubyKaigi 04 2011-10-29
Read less
Read more
1 of 35
More Related Content
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 なりを準備 ● モデルなどを追加する度にテストファイルも作る ● ………
12.
あなたと、
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 とかそんな感じ
20.
普通に使えました
21.
Capyara ●
In `spec/spec_helper.rb` ● 頭の方に ● 受け入れテスト_spec.rbに ● #visit, #current_path, #page など Capybara DSL
22.
普通に使えました(2)
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 ぐらいしか できていない
26.
こんなん
27.
感想 ●
rspec-rails って多機能で便利なんですね
28.
頑張ります ●
https://github.com/udzura/rspec-padrino
29.
まとめ ●
Sinatra、便利アイテムが使えないかと思いきや Railsで使えるものが意外と使える ● Rails の肩に乗りまくる ● ないものはない ● ないものは、ない ● 作って「俺スゲー」するチャンス!!!1 ● 正直 Padrino 便利、テストが必要になってきた ら導入をご一考ください
30.
おまけ
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__ ●
ご清聴ありがとうございました