Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
turnipとcapybara
とBDDと私
2014/11/12(Wed)
@tchikuba
面倒なので引用
turnip
turnip
● cucumberからturnipへ byるびま
の割に
広まってる感に
欠ける気がする
※最近はそうでもない?
turnip推しの訳
● cucumberよりステップ記述が楽ちん
○ Given, And, Then, Whenとか不要
○ stepだけでOK
○ パラメータ入れる際の不可解な正規表現が不要
● bundle exec cucumberが...
turnip推しの訳
● capybara作者の@jnicklas
○ capybaraとの相性が良いんじゃ
● TDD is dead. Long live testing.
○ But BDD is alive!
● 品質担保
○ ビジネス...
capybaraさん
capybara ★5507
● githubスター数すごい
● DSLはwebフォーム操作のテストで必須
● 巷にあるcheat sheet重宝します
ruby crawler
capybara as crawler
● 一般的なクローラーの技術要素
○ Open-URI
○ Nokogiri
○ Anemone
○ Mechanize etc
● DSLに慣れていると記述が楽
● js必須の特殊クローラー(?)の相性
コード例
poltergeist + capybaraで
Google Spreadsheetに
OAuth2認証突破して書き込み
BDD
Beer Driven Development
TDDは死んだらしい
● DHHがそう言ってるからそうなのか
○ (余談)ケント・ベックとの対談面白かった
● そして時代はBDD
BDD推しの訳
● ビジネス価値に近いテスト
● 価値が高いと言って差し支えない
● rspecとの棲み分けが明確
○ BDD/turnip: 主に正常系とmissionクリティカル系
○ TDD/rspec: 異常系や実装者関心事系
BDD推しの訳
● 私は伝統的な意味でのユニットテストはほとんどしない。す
べての依存関係をモックにし、何千というテストが数秒で終
わるようなユニットテストのことだが。Railsアプリケーション
のテスティングにおいてはいいやり方ではないという...
BDD推しの訳
● これが我々の向かう方向だと思う。ユニットテストの重要度
を下げる。設計のプラクティスとしてはテストファーストを使
わないからだ。そしてより遅いシステムテストの重要度を上
げる。(ところで、並列でクラウドで実行するインフラのお...
BDD推しの訳
● Railsはこうした移行の手助けになりうる。今日、我々は完全
なシステムテストを推進するためになにもしていない。スタッ
クにデフォルトの正解を準備していない。我々はこうした間
違いを直していくつもりだ。だが直るのを待っている...
DHHも
capybara推し
だった!
(参考) Wモデル
プロセスで
分担する時代から
スコープで
分担する時代へ
上流とか下流とか
くたばれば
いいのに
私
Beer Driven Developer
twitter: @tchikuba
facebook: tchikuba
turnipとcapybaraとBDDと私
turnipとcapybaraとBDDと私
Upcoming SlideShare
Loading in …5
×

turnipとcapybaraとBDDと私

1,813 views

Published on

勉強会資料

Published in: Technology
  • Be the first to comment

  • Be the first to like this

turnipとcapybaraとBDDと私

  1. 1. turnipとcapybara とBDDと私 2014/11/12(Wed) @tchikuba
  2. 2. 面倒なので引用
  3. 3. turnip
  4. 4. turnip ● cucumberからturnipへ byるびま
  5. 5. の割に 広まってる感に 欠ける気がする ※最近はそうでもない?
  6. 6. turnip推しの訳 ● cucumberよりステップ記述が楽ちん ○ Given, And, Then, Whenとか不要 ○ stepだけでOK ○ パラメータ入れる際の不可解な正規表現が不要 ● bundle exec cucumberが必要ない ○ rspecへ統合 ○ bin/rspec -r turnip/rspec ○ .rspecに書いておくと便利
  7. 7. turnip推しの訳 ● capybara作者の@jnicklas ○ capybaraとの相性が良いんじゃ ● TDD is dead. Long live testing. ○ But BDD is alive! ● 品質担保 ○ ビジネス価値に直結する ● rspecだとシナリオ的なテストはきつい
  8. 8. capybaraさん
  9. 9. capybara ★5507 ● githubスター数すごい ● DSLはwebフォーム操作のテストで必須 ● 巷にあるcheat sheet重宝します
  10. 10. ruby crawler
  11. 11. capybara as crawler ● 一般的なクローラーの技術要素 ○ Open-URI ○ Nokogiri ○ Anemone ○ Mechanize etc ● DSLに慣れていると記述が楽 ● js必須の特殊クローラー(?)の相性
  12. 12. コード例 poltergeist + capybaraで Google Spreadsheetに OAuth2認証突破して書き込み
  13. 13. BDD Beer Driven Development
  14. 14. TDDは死んだらしい ● DHHがそう言ってるからそうなのか ○ (余談)ケント・ベックとの対談面白かった ● そして時代はBDD
  15. 15. BDD推しの訳 ● ビジネス価値に近いテスト ● 価値が高いと言って差し支えない ● rspecとの棲み分けが明確 ○ BDD/turnip: 主に正常系とmissionクリティカル系 ○ TDD/rspec: 異常系や実装者関心事系
  16. 16. BDD推しの訳 ● 私は伝統的な意味でのユニットテストはほとんどしない。す べての依存関係をモックにし、何千というテストが数秒で終 わるようなユニットテストのことだが。Railsアプリケーション のテスティングにおいてはいいやり方ではないという、ただ それだけだ。私はアクティブレコードを直接、データベースを アクセスし、フィクスチャを使ってテストする。上のレイヤには コントローラのテストがあるが、私はどちらかというとさらに 上位のシステムテストを、Capybaraや類似のものを使って テストする。
  17. 17. BDD推しの訳 ● これが我々の向かう方向だと思う。ユニットテストの重要度 を下げる。設計のプラクティスとしてはテストファーストを使 わないからだ。そしてより遅いシステムテストの重要度を上 げる。(ところで、並列でクラウドで実行するインフラのおかげ で、以前のように遅いわけではない。)
  18. 18. BDD推しの訳 ● Railsはこうした移行の手助けになりうる。今日、我々は完全 なシステムテストを推進するためになにもしていない。スタッ クにデフォルトの正解を準備していない。我々はこうした間 違いを直していくつもりだ。だが直るのを待っている必要は ない。Capybaraを試してみれば、我々が明日向かっていく 方向がわかるはずだ。
  19. 19. DHHも capybara推し だった!
  20. 20. (参考) Wモデル
  21. 21. プロセスで 分担する時代から スコープで 分担する時代へ
  22. 22. 上流とか下流とか くたばれば いいのに
  23. 23. 私 Beer Driven Developer twitter: @tchikuba facebook: tchikuba

×