Symfony2 behat-bdd

3,388 views
3,312 views

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,388
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
18
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Symfony2 behat-bdd

  1. 1. Symfony2 X BDD 日本Symfonyユーザー会 後藤 秀宣(@hidenorigoto)Symfony2 x BDD
  2. 2.   Symfony2ならSymfony2 x BDD
  3. 3.   手軽にBDDを 始められるッSymfony2 x BDD
  4. 4. 準備Symfony2 x BDD
  5. 5. 準備するもの ● Symfony2 PR7 ● Behat ● BehatBundle ● PHPUnitSymfony2 x BDD
  6. 6.   更新されたっぽいSymfony2 x BDD
  7. 7. 準備するもの ● Symfony2 PR7 (or PR9) ● Behat ● BehatBundle ● PHPUnitSymfony2 x BDD
  8. 8. 準備するもの ● Symfony2 PR7 (or PR9) ● Behat Behat developブランチ ● BehatBundle ● PHPUnit Behat の作者が開発 (Symfony2コミッター)Symfony2 x BDD
  9. 9. 参考URL ● http://blog.symfony.jp/2011/03/26/ 337 「Symfony2とBehatでBDD」 ● PHPUnitはこの辺使うと楽かも https://github.com/knplabs/phpunit -easyinstallSymfony2 x BDD
  10. 10. Symfony/Symfony2には もともと テストの機能がありますSymfony2 x BDD
  11. 11. Symfony2での位置づけ 標準 BDD 機能(受入) Crawlerを Behatによる テスト 使ったテス テスト   ト (PHPUnit) ユニットテ PHPUnit PHPUnit ストSymfony2 x BDD
  12. 12.   Web開発の流れSymfony2 x BDD
  13. 13. Web開発の流れ ● サイトの機能を考えるSymfony2 x BDD
  14. 14. Web開発の流れ ● サイトの機能を考える ● 機能ごとの入出力を決めるSymfony2 x BDD
  15. 15. Web開発の流れ ● サイトの機能を考える ● 機能ごとの入出力を決める ● 実装するSymfony2 x BDD
  16. 16.   BDDにするとSymfony2 x BDD
  17. 17. BDDでのWeb開発の流れ ● サイトの機能を考える  フィーチャを書く ● 機能ごとの入出力を決める ● 実装するSymfony2 x BDD
  18. 18. BDDでのWeb開発の流れ ● サイトの機能を考える  フィーチャを書く ● 機能ごとの入出力を決める  シナリオを書く ● 実装するSymfony2 x BDD
  19. 19. BDDでのWeb開発の流れ ● サイトの機能を考える  フィーチャを書く ● 機能ごとの入出力を決める  シナリオを書く ● 実装する  実装+ユニットテストSymfony2 x BDD
  20. 20. BDDでのWeb開発の流れ ● サイトの機能を考える  フィーチャを書く ● 機能ごとの入出力を決める  シナリオを書く ステップを書く ● 実装する  実装+ユニットテストSymfony2 x BDD
  21. 21.   Symfony2 + BehatBundle でのやり方Symfony2 x BDD
  22. 22. BehatBundleでBDD ● バンドルを作っておく (autoload、AppKernel登録) ● バンドル内でBDD関連初期化 behat:test:bundle --init バンドル名Symfony2 x BDD
  23. 23. BehatBundleでBDD ● Behat:test:bundle --initで、BDD用の初期 ファイルがバンドル内に生成されるSymfony2 x BDD
  24. 24. BehatBundleでBDD Behatのテストを実行できるようになる (まだシナリオやステップはない)Symfony2 x BDD
  25. 25. これだけで BDDの「フィーチャ」などを 書く準備ができました!!Symfony2 x BDD
  26. 26. 1チケット ‖ 1機能 Behatの ‖ ルール 1フィーチャ ‖ 1フィーチャファイル ‖ 1GitブランチSymfony2 x BDD
  27. 27. 1チケット ‖ 1機能 Behatの ‖ ルール 1フィーチャ ‖ 1フィーチャファイル ‖ 複数の 1Gitブランチ シナリオSymfony2 x BDD
  28. 28. 1チケット ‖ 1機能 Behatの ‖ ルール 1フィーチャ ‖ 1フィーチャファイル ‖ 複数の 1Gitブランチ シナリオSymfony2 x BDD
  29. 29. 1チケット ‖ 1機能 Behatの ‖ ルール 1フィーチャ ‖ 1フィーチャファイル ‖ 複数の 1Gitブランチ シナリオSymfony2 x BDD
  30. 30. フィーチャ/シナリオを書く ● バンドルのTests/Featuresディレクトリ 〜.feature ファイルを作成Symfony2 x BDD
  31. 31. フィーチャ/シナリオを書く ● キーワード部分は日本語にもデフォルトで対応 (先頭に language: ja が必要)Symfony2 x BDD
  32. 32. フィーチャ/シナリオを書く ● フィーチャの構文 Gherkin http://docs.behat.org/en/gherkin/index.html Cucumber http://cukes.info/ Ryuzee.com [PHP]BehatとSeleniumを組み合わせ受け入れテ ストを自動化する http://www.ryuzee.com/contents/blog/3608Symfony2 x BDD
  33. 33. Behatのテストを実行 フィーチャがテストとして実行されるようになるッ!Symfony2 x BDD
  34. 34. ステップは? ● BehatBundleにデフォルトのWeb Stepが組み込 まれている (なので、ステップを記述しなくてもテストが 実行された)Symfony2 x BDD
  35. 35. BehatBundle組み込みのstep ● BehatBundle └Resources └features └steps browser_steps.php form_steps.php request_steps.php response_steps.phpSymfony2 x BDD
  36. 36. browser_steps.php ステップはキーワードメソッドに正規表現パラ メータとして実装されている 以下は「Given I am on 〜」というステップSymfony2 x BDD
  37. 37. ステップを日本語で書くには? ● 書けばいい  →Behatコマンド実行時に雛形 ● 最初から I am on〜の部分を翻訳した日本語ス テップを用意しておくこともOKSymfony2 x BDD
  38. 38.   Behatのテストが出来上がった (RED) ↓ 実装Symfony2 x BDD
  39. 39.   実装・ユニットテスト (略) Symfony2のドキュメント参照Symfony2 x BDD
  40. 40. 実装完了 実装できたらBehatのテストを実行(GREEN)Symfony2 x BDD
  41. 41. これが1サイクル ● このような流れを繰り返して実装していくSymfony2 x BDD
  42. 42.   おまけSymfony2 x BDD
  43. 43. 日本語ステップ ● BehatBundle └Resources └features └steps        └i18n ja.xliff ここに翻訳リソースをおけば、組み込みステッ プを日本語で利用可能Symfony2 x BDD
  44. 44.   まとめSymfony2 x BDD
  45. 45. まとめ Symfony2は、Behatをフレーム ワークに統合するための BehatBundleが提供されるてお り、BDDしたいという人にもオ ススメSymfony2 x BDD
  46. 46.   Symfony2 やろうぜ!Symfony2 x BDD
  47. 47.   ありがとうございましたSymfony2 x BDD
  48. 48. Symfony のステッカーを欲しい方は 懇親会で声かけてください!Symfony2 x BDD

×