symfony(1.x) を使った TDD のススメ 日本Symfonyユーザー会 後藤 秀宣(@hidenorigoto)
TDDとは? Test Driven Development
ざっくりと・・・・ <ul><li>hello()というメソッドを実装したい?
hello()メソッドを実装する前に、hello()メソッドのI/Oに対応するテストを実装する。
テストだけが実装できたら、テストを実行 ->RED(失敗)
メソッドの実装を進めながら繰り返しテストを実行
最後にテストがGREENになって実装完了 </li></ul>
symfonyに組み込まれている機能 <ul><li>lime フレームワーク
lime を使ったユニットテスト
lime を使った機能テスト </li></ul>
symfonyの環境準備 Symfonyユーザー会の説明参照 (symfonyサンドボックスのインストール) -> http://www.symfony.gr.jp/    docs/for-beginners/installation <ul...
frontend アプリケーションを作成
frontend 内に hello モジュールを作成 </li></ul>
実装するメソッドの仕様 HelloLibクラス <ul><li>lib内に配置するプロジェクト内汎用ライブラリ
hello()メソッド  ->パラメーターなし  ->戻り値は「Hello, Symfony!!!」という文字列 </li></ul>
STEP1 テストファイルの追加 /lib/HelloLib.class.phpのユニットテスト ->/test/unit/lib/HelloLibTest.php 定型のブートストラップコードを追加する ※インスタンス化のテストまでつけています
STEP2 テスト実行 RED
STEP3 クラスファイルの追加 クラスのみ テストを実行(同じコマンド) GREEN
STEP4 メソッドのテストを追加 hello()メソッドのテストを実装 ※limeのテスト個数を変更する必要があることに注意
STEP5 テスト実行 RED
Upcoming SlideShare
Loading in …5
×

Symfony tdd

1,654
-1

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,654
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Symfony tdd

  1. 1. symfony(1.x) を使った TDD のススメ 日本Symfonyユーザー会 後藤 秀宣(@hidenorigoto)
  2. 2. TDDとは? Test Driven Development
  3. 3. ざっくりと・・・・ <ul><li>hello()というメソッドを実装したい?
  4. 4. hello()メソッドを実装する前に、hello()メソッドのI/Oに対応するテストを実装する。
  5. 5. テストだけが実装できたら、テストを実行 ->RED(失敗)
  6. 6. メソッドの実装を進めながら繰り返しテストを実行
  7. 7. 最後にテストがGREENになって実装完了 </li></ul>
  8. 8. symfonyに組み込まれている機能 <ul><li>lime フレームワーク
  9. 9. lime を使ったユニットテスト
  10. 10. lime を使った機能テスト </li></ul>
  11. 11. symfonyの環境準備 Symfonyユーザー会の説明参照 (symfonyサンドボックスのインストール) -> http://www.symfony.gr.jp/    docs/for-beginners/installation <ul><li>symfony の配置
  12. 12. frontend アプリケーションを作成
  13. 13. frontend 内に hello モジュールを作成 </li></ul>
  14. 14. 実装するメソッドの仕様 HelloLibクラス <ul><li>lib内に配置するプロジェクト内汎用ライブラリ
  15. 15. hello()メソッド  ->パラメーターなし  ->戻り値は「Hello, Symfony!!!」という文字列 </li></ul>
  16. 16. STEP1 テストファイルの追加 /lib/HelloLib.class.phpのユニットテスト ->/test/unit/lib/HelloLibTest.php 定型のブートストラップコードを追加する ※インスタンス化のテストまでつけています
  17. 17. STEP2 テスト実行 RED
  18. 18. STEP3 クラスファイルの追加 クラスのみ テストを実行(同じコマンド) GREEN
  19. 19. STEP4 メソッドのテストを追加 hello()メソッドのテストを実装 ※limeのテスト個数を変更する必要があることに注意
  20. 20. STEP5 テスト実行 RED
  21. 21. STEP6 メソッドの実装 hello()メソッドを実装する
  22. 22. STEP7 テストの実行 テストが2つともパスし、GREEN
  23. 23. 以上 この流れを繰り返して実装していきます。
  24. 24. すべてのユニットテストを実行 クラスを指定せずに実行すると、すべてのユニットテストが実行される
  25. 25. カバレッジの確認 xdebugがインストールされている場合は、カバレッジの確認も可能
  26. 26. まとめ <ul><li>symfonyには最初からTDD用の環境(テスティングフレームワーク)が組み込まれている
  27. 27. 特殊な設定やインストールは不要 (カバレッジ用のxdebugを除く) </li></ul>
  28. 28. まとめ2 symfonyとは関係のない自前ライブラリのテストを行うテストフレームワークとして使うことも可能
  29. 29. 参考URL A Gentle Introduction to symfony Chapter 15 – Unit And Functional Testing http://www.symfony-project.org/gentle-introduction/1_4/en/15-Unit-and-Functional-Testing Practical Symfony 8日目:ユニットテスト http://www.symfony-project.org/jobeet/1_4/Doctrine/ja/08 9日目:機能テスト http://www.symfony-project.org/jobeet/1_4/Doctrine/ja/09
  30. 30. おわりに 詳細を聞きたい方 ご質問のある方は 是非 Symfony ユーザー会の 展示ブースまでお越しください! (2 F 203 教室)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×