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