Suche senden
Hochladen
Symfony2 Behat/BDD (#Symfony2study 4)
•
3 gefällt mir
•
6,152 views
Hidenori Goto
Folgen
第4回Symfony2勉強会 Behatでテストファースト開発のスライド
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 95
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
最速C# 7.x
最速C# 7.x
Yamamoto Reki
Adaptive optimization of JIT compiler
Adaptive optimization of JIT compiler
nothingcosmos
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
Yamamoto Reki
20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)
Yoshifumi Yamaguchi
20130316 プログラミング言語Go
20130316 プログラミング言語Go
Yoshifumi Yamaguchi
Vivado hls勉強会4(axi4 master)
Vivado hls勉強会4(axi4 master)
marsee101
プログラミング .NET Framework 第4版
プログラミング .NET Framework 第4版
信之 岩永
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
信之 岩永
Empfohlen
最速C# 7.x
最速C# 7.x
Yamamoto Reki
Adaptive optimization of JIT compiler
Adaptive optimization of JIT compiler
nothingcosmos
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
Yamamoto Reki
20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)
Yoshifumi Yamaguchi
20130316 プログラミング言語Go
20130316 プログラミング言語Go
Yoshifumi Yamaguchi
Vivado hls勉強会4(axi4 master)
Vivado hls勉強会4(axi4 master)
marsee101
プログラミング .NET Framework 第4版
プログラミング .NET Framework 第4版
信之 岩永
.NET Core 2.x 時代の C#
.NET Core 2.x 時代の C#
信之 岩永
広がる .Net
広がる .Net
信之 岩永
20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri
Yoshifumi Yamaguchi
Vivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリーム
marsee101
進化するArt
進化するArt
Takuya Matsunaga
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
信之 岩永
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)
marsee101
Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)
marsee101
C#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
信之 岩永
Zynq + Vivado HLS入門
Zynq + Vivado HLS入門
narusugimoto
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応
marsee101
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
hecomi
C#で速度を極めるいろは
C#で速度を極めるいろは
Core Concept Technologies
Trema day#4 Pio盛り ~Tremaのパケットパーサ~
Trema day#4 Pio盛り ~Tremaのパケットパーサ~
エイシュン コンドウ
名著『リーダブルコード』を解説者と一緒に読み解こう - 7章 制御フローを読みやすくする
名著『リーダブルコード』を解説者と一緒に読み解こう - 7章 制御フローを読みやすくする
Kouhei Sutou
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
Shigenori Sagawa
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
Kei Nakazawa
レビューで保守性のためにした コメントをふりかえってみた
レビューで保守性のためにした コメントをふりかえってみた
Takhisa Hirokawa
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
marsee101
PyCon JP 2014 plone terada
PyCon JP 2014 plone terada
Manabu Terada
第4回Symfony2勉強会 基礎編ワークショップ.1
第4回Symfony2勉強会 基礎編ワークショップ.1
Yusuke Ueno
第4回Symfony2勉強会 基礎編ワークショップ.0
第4回Symfony2勉強会 基礎編ワークショップ.0
Yusuke Ueno
Symfony2のフォームフレームワーク
Symfony2のフォームフレームワーク
Katsuhiro Ogawa
Weitere ähnliche Inhalte
Was ist angesagt?
広がる .Net
広がる .Net
信之 岩永
20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri
Yoshifumi Yamaguchi
Vivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリーム
marsee101
進化するArt
進化するArt
Takuya Matsunaga
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
信之 岩永
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)
marsee101
Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)
marsee101
C#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
信之 岩永
Zynq + Vivado HLS入門
Zynq + Vivado HLS入門
narusugimoto
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応
marsee101
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
hecomi
C#で速度を極めるいろは
C#で速度を極めるいろは
Core Concept Technologies
Trema day#4 Pio盛り ~Tremaのパケットパーサ~
Trema day#4 Pio盛り ~Tremaのパケットパーサ~
エイシュン コンドウ
名著『リーダブルコード』を解説者と一緒に読み解こう - 7章 制御フローを読みやすくする
名著『リーダブルコード』を解説者と一緒に読み解こう - 7章 制御フローを読みやすくする
Kouhei Sutou
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
Shigenori Sagawa
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
Kei Nakazawa
レビューで保守性のためにした コメントをふりかえってみた
レビューで保守性のためにした コメントをふりかえってみた
Takhisa Hirokawa
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
marsee101
PyCon JP 2014 plone terada
PyCon JP 2014 plone terada
Manabu Terada
Was ist angesagt?
(19)
広がる .Net
広がる .Net
20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri
Vivado hlsのシミュレーションとhlsストリーム
Vivado hlsのシミュレーションとhlsストリーム
進化するArt
進化するArt
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)
Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)
C#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
Zynq + Vivado HLS入門
Zynq + Vivado HLS入門
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
C#で速度を極めるいろは
C#で速度を極めるいろは
Trema day#4 Pio盛り ~Tremaのパケットパーサ~
Trema day#4 Pio盛り ~Tremaのパケットパーサ~
名著『リーダブルコード』を解説者と一緒に読み解こう - 7章 制御フローを読みやすくする
名著『リーダブルコード』を解説者と一緒に読み解こう - 7章 制御フローを読みやすくする
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
レビューで保守性のためにした コメントをふりかえってみた
レビューで保守性のためにした コメントをふりかえってみた
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
PyCon JP 2014 plone terada
PyCon JP 2014 plone terada
Andere mochten auch
第4回Symfony2勉強会 基礎編ワークショップ.1
第4回Symfony2勉強会 基礎編ワークショップ.1
Yusuke Ueno
第4回Symfony2勉強会 基礎編ワークショップ.0
第4回Symfony2勉強会 基礎編ワークショップ.0
Yusuke Ueno
Symfony2のフォームフレームワーク
Symfony2のフォームフレームワーク
Katsuhiro Ogawa
Silex 入門
Silex 入門
Masao Maeda
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るために
Atsuhiro Kubo
Twigエクステンションの作り方
Twigエクステンションの作り方
Katsuhiro Ogawa
フラットなPHPからフレームワークへ
フラットなPHPからフレームワークへ
VOYAGE GROUP
オレオレSecurityバンドル作っちゃいました
オレオレSecurityバンドル作っちゃいました
Katsuhiro Ogawa
Symfony勉強会#9 form
Symfony勉強会#9 form
Yuichi Okada
Silex入門
Silex入門
Takuya Sato
Composer 再入門
Composer 再入門
Masashi Shinbara
Andere mochten auch
(11)
第4回Symfony2勉強会 基礎編ワークショップ.1
第4回Symfony2勉強会 基礎編ワークショップ.1
第4回Symfony2勉強会 基礎編ワークショップ.0
第4回Symfony2勉強会 基礎編ワークショップ.0
Symfony2のフォームフレームワーク
Symfony2のフォームフレームワーク
Silex 入門
Silex 入門
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るために
Twigエクステンションの作り方
Twigエクステンションの作り方
フラットなPHPからフレームワークへ
フラットなPHPからフレームワークへ
オレオレSecurityバンドル作っちゃいました
オレオレSecurityバンドル作っちゃいました
Symfony勉強会#9 form
Symfony勉強会#9 form
Silex入門
Silex入門
Composer 再入門
Composer 再入門
Ähnlich wie Symfony2 Behat/BDD (#Symfony2study 4)
Symfony2 behat-bdd
Symfony2 behat-bdd
Hidenori Goto
Symfony2 intro-20111204
Symfony2 intro-20111204
Hidenori Goto
Houdini 製品概要
Houdini 製品概要
Ken Taki
Monomeeting 20081022
Monomeeting 20081022
Atsushi Eno
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
Izumi Tsutsui
Behat+Symfony2ではじめるBDD超入門
Behat+Symfony2ではじめるBDD超入門
晃 遠山
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Hidenori Goto
Symfony2#5 LT
Symfony2#5 LT
Masato Koizumi
Xilinx SDSoC(2016.2)解体新書ソフトウェア編
Xilinx SDSoC(2016.2)解体新書ソフトウェア編
Mr. Vengineer
ZendStudioのご紹介
ZendStudioのご紹介
Manabu Shinsaka
秋のVim祭り Rubyを添えて
秋のVim祭り Rubyを添えて
Yuta Ogura
node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成
shigeki_ohtsu
Golang tokyo #7 qtpm
Golang tokyo #7 qtpm
Yoshiki Shibukawa
LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2
Tomofumi Yagi
mbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミング
Kiwamu Okabe
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATE
Tomofumi Yagi
Doctrine2 odm-workshop-1
Doctrine2 odm-workshop-1
Hidenori Goto
リーダブルコードを読んだ後
リーダブルコードを読んだ後
Kouhei Sutou
Al mininum 47redmine-2nd
Al mininum 47redmine-2nd
mikoto20000
Xilinx SDSoC(2016.3)解体新書ソフトウェア編
Xilinx SDSoC(2016.3)解体新書ソフトウェア編
Mr. Vengineer
Ähnlich wie Symfony2 Behat/BDD (#Symfony2study 4)
(20)
Symfony2 behat-bdd
Symfony2 behat-bdd
Symfony2 intro-20111204
Symfony2 intro-20111204
Houdini 製品概要
Houdini 製品概要
Monomeeting 20081022
Monomeeting 20081022
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
Behat+Symfony2ではじめるBDD超入門
Behat+Symfony2ではじめるBDD超入門
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Symfony2#5 LT
Symfony2#5 LT
Xilinx SDSoC(2016.2)解体新書ソフトウェア編
Xilinx SDSoC(2016.2)解体新書ソフトウェア編
ZendStudioのご紹介
ZendStudioのご紹介
秋のVim祭り Rubyを添えて
秋のVim祭り Rubyを添えて
node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成
Golang tokyo #7 qtpm
Golang tokyo #7 qtpm
LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2
mbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミング
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATE
Doctrine2 odm-workshop-1
Doctrine2 odm-workshop-1
リーダブルコードを読んだ後
リーダブルコードを読んだ後
Al mininum 47redmine-2nd
Al mininum 47redmine-2nd
Xilinx SDSoC(2016.3)解体新書ソフトウェア編
Xilinx SDSoC(2016.3)解体新書ソフトウェア編
Mehr von Hidenori Goto
Excelで勤務時間合計2
Excelで勤務時間合計2
Hidenori Goto
Excelで勤務時間合計
Excelで勤務時間合計
Hidenori Goto
Symfony2 3rd-Party Bundles
Symfony2 3rd-Party Bundles
Hidenori Goto
翻訳について
翻訳について
Hidenori Goto
Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-0 (nagoya 2011/2/10)
Hidenori Goto
Symfony2 workshop-1 (nagoya 2011/2/10)
Symfony2 workshop-1 (nagoya 2011/2/10)
Hidenori Goto
Symfony2 workshop-2
Symfony2 workshop-2
Hidenori Goto
Symfony2 workshop-1
Symfony2 workshop-1
Hidenori Goto
Symfony2 introduction
Symfony2 introduction
Hidenori Goto
Symfony 1.4 TIPS from Openpne Source Code
Symfony 1.4 TIPS from Openpne Source Code
Hidenori Goto
Orm Designer
Orm Designer
Hidenori Goto
Symfony tdd
Symfony tdd
Hidenori Goto
Symfony2 caching
Symfony2 caching
Hidenori Goto
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
Hidenori Goto
HTC Desireについて
HTC Desireについて
Hidenori Goto
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Hidenori Goto
TwitterのStreaming ApiをPhpから使う
TwitterのStreaming ApiをPhpから使う
Hidenori Goto
TwitterのStreaming APIについて
TwitterのStreaming APIについて
Hidenori Goto
SubversionとSugarsync
SubversionとSugarsync
Hidenori Goto
Osc Nagoya 2009 symfonyの紹介
Osc Nagoya 2009 symfonyの紹介
Hidenori Goto
Mehr von Hidenori Goto
(20)
Excelで勤務時間合計2
Excelで勤務時間合計2
Excelで勤務時間合計
Excelで勤務時間合計
Symfony2 3rd-Party Bundles
Symfony2 3rd-Party Bundles
翻訳について
翻訳について
Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-1 (nagoya 2011/2/10)
Symfony2 workshop-1 (nagoya 2011/2/10)
Symfony2 workshop-2
Symfony2 workshop-2
Symfony2 workshop-1
Symfony2 workshop-1
Symfony2 introduction
Symfony2 introduction
Symfony 1.4 TIPS from Openpne Source Code
Symfony 1.4 TIPS from Openpne Source Code
Orm Designer
Orm Designer
Symfony tdd
Symfony tdd
Symfony2 caching
Symfony2 caching
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
HTC Desireについて
HTC Desireについて
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
TwitterのStreaming ApiをPhpから使う
TwitterのStreaming ApiをPhpから使う
TwitterのStreaming APIについて
TwitterのStreaming APIについて
SubversionとSugarsync
SubversionとSugarsync
Osc Nagoya 2009 symfonyの紹介
Osc Nagoya 2009 symfonyの紹介
Symfony2 Behat/BDD (#Symfony2study 4)
1.
今日から始める
BDD (Symfony2編) 日本Symfonyユーザー会 後藤 秀宣(@hidenorigoto) Symfony2 x BDD
2.
内容(予定)
● TDD、BDDとは ● Behatの特徴 ● Behat環境の構築方法(Symfony2) ● Behatの使い方 ● 応用 Symfony2 x BDD
3.
Webアプリケーションの テスト駆動開発 入門の話 Symfony2 x BDD
4.
質問
テスト書いてますか? Symfony2 x BDD
5.
ご安心ください Symfony2 x BDD
6.
テストを書いていない人
めんどくさい テストの書き方が分か らない 開発プロセスにまで適 用できない Symfony2 x BDD
7.
テストを書いていない人
後藤の勝手なイメージ めんどくさい テストの書き方が分か らない 開発プロセスにまで適 用できない Symfony2 x BDD
8.
ご安心ください この講演を聞くと テストファーストな開発を 始められます! (多分) Symfony2 x BDD
9.
ところで 「テスト」とは Symfony2 x BDD
10.
テスト駆動開発のテスト ≠ ソフトウェア品質テストのテスト Symfony2 x BDD
11.
テスト駆動開発のテスト 開発手法の視点 ≠ 品質保証の視点 ソフトウェア品質テストのテスト Symfony2 x BDD
12.
● TDDについて、もっと体系的に知りたい方は Symfony2 x BDD
13.
●
原書はこちら Symfony2 x BDD
14.
Behatを使うと Symfony2 x BDD
15.
Behatを使うと
● 自然言語に近い構文 →英語が分からなくても書ける Symfony2 x BDD
16.
Behatを使うと
● 自然言語に近い構文 →英語が分からなくても書ける ● 組み込みステップ →Webテスト系をスムーズに記述可能 Symfony2 x BDD
17.
Behatを使うと
● 自然言語に近い構文 →英語が分からなくても書ける ● 組み込みステップ →Webテスト系をスムーズに記述可能 ● テストの内容が分かりやすい →テストのメンテナンス性 Symfony2 x BDD
18.
Behatを使うと
● 自然言語に近い構文 →英語が分からなくても書ける ● 組み込みステップ →Webテスト系をスムーズに記述可能 ● テストの内容が分かりやすい →テストのメンテナンス性 ハードルが 低い Symfony2 x BDD
19.
BDDについて Symfony2 x BDD
20.
BDDについて Symfony2 x BDD
21.
BDDについて
● 振舞駆動開発 Symfony2 x BDD
22.
BDDについて
● 振舞駆動開発 ● PHPUnit等でもBDDはできる Symfony2 x BDD
23.
BDDについて
● 振舞駆動開発 ● PHPUnit等でもBDDはできる ● BehatのBDDは「シナリオBDD」 →違いは・・・・? Symfony2 x BDD
24.
PHPUnit vs Behat(Gherkin)
PHPUnit PHPUnitマニュアル 第13章 振舞駆動開発 ボウリングゲームの例 Symfony2 x BDD
25.
PHPUnit vs Behat(Gherkin)
Behat Symfony2 x BDD
26.
BDDについて
● 振舞駆動開発 ● PHPUnit等でもBDDはできる ● BehatのBDDは「シナリオBDD」 →違いは・・・・? Symfony2 x BDD
27.
BDDについて
● 振舞駆動開発 ● PHPUnit等でもBDDはできる ● BehatのBDDは「シナリオBDD」 →違いは・・・・? 読みやすいDSLによるテストの記述と実行 Symfony2 x BDD
28.
BDDについて
● 振舞駆動開発 ● PHPUnit等でもBDDはできる ● BehatのBDDは「シナリオBDD」 →違いは・・・・? 読みやすいDSLによるテストの記述と実行 ユビキタス言語(DDD)との親和性 Symfony2 x BDD
29.
Behatについて Symfony2 x BDD
30.
Behatとは
● BDDフレームワーク for PHP Symfony2 x BDD
31.
Symfony2 x BDD
32.
Behatとは
● BDDフレームワーク for PHP ● Cucumber(Ruby)互換DSL (Gherkin) Symfony2 x BDD
33.
Behatとは
● BDDフレームワーク for PHP ● Cucumber(Ruby)互換DSL (Gherkin) ● Symfony2のコンポーネントを使って実装 Symfony2 x BDD
34.
Behatとは
● BDDフレームワーク for PHP ● Cucumber(Ruby)互換DSL (Gherkin) ● Symfony2のコンポーネントを使って実装 ● Symfony2と統合しやすい(BehatBundle) Symfony2 x BDD
35.
Behatとは
● BDDフレームワーク for PHP ● Cucumber(Ruby)互換DSL (Gherkin) ● Symfony2のコンポーネントを使って実装 ● Symfony2と統合しやすい(BehatBundle) ● Symfony2以外のフレームワークのテストにも利用可能 symfony 1.4(sfBrowser) 他(Goutte/Sahi ドライバ) Symfony2 x BDD
36.
BehatBundleを使うと
(そこそこ)手軽に シナリオBDDを 始められます! Symfony2 x BDD
37.
ここから Symfony2で Behatの使い方 Symfony2 x BDD
38.
インストール手順
● Gistにまとめてあります https://gist.github.com/997514 ● めんどくさい方は、knpIpsumで持ってくる http://bit.ly/sf2-knpipsum Symfony2 x BDD
39.
Behat環境の準備(1)
● 最初にPHPUnit環境を準備 ● インストールされていなければ インストールされたディレクトリを確認しておくこと Symfony2 x BDD
40.
Behat環境の準備(2)
● Symfony2プロジェクトに以下を組み込む Behat https://github.com/Behat/Behat Gherkin https://github.com/Behat/Gherkin Mink https://github.com/Behat/Mink BehatBundle https://github.com/Behat/BehatBundle MinkBundle https://github.com/Behat/MinkBundle Symfony2 x BDD
41.
Behat環境の準備(2)
● Symfony2プロジェクトに以下を組み込む Behat https://github.com/Behat/Behat Gherkin https://github.com/Behat/Gherkin Mink https://github.com/Behat/Mink BehatBundle https://github.com/Behat/BehatBundle MinkBundle https://github.com/Behat/MinkBundle 慣れてない方には超ハードル Symfony2 x BDD
42.
Behat環境の準備(2)- 2
● BETA2あたりからdepsファイルを使ったvendors 指定に変わった →組み込みたいライブラリのリポジトリを bin/depsファイルに書く →$ php bin/vendors.php Symfony2 x BDD
43.
Behat環境の準備(3)
● autoload.php 注:PHPUnitがインクルードパスにない 場合は追加しておく ● AppKernel.php バンドルを登録 PHPUnit用require ● config_dev.yml framework test: ~ behat_mink start_url: ~ Symfony2 x BDD
44.
Behat環境の準備(4)
● Symfony2コンソールの一覧にbehatが出る Symfony2 x BDD
45.
Behat環境の準備(5)
● 動作確認:テスト用のバンドルを初期化 AcmeTestBundleは あらかじめ作成 されていること Symfony2 x BDD
46.
Behatで テストを書く 基礎知識 Symfony2 x BDD
47.
用語
● フィーチャ ● シナリオ ● ステップ ● 前提(Given) もし(When) ならば(Then) ● Gherkin ● Mink ● Sahi Symfony2 x BDD
48.
フィーチャ
● アプリケーションの機能ごとの単位 ● 粒度は自由に決める (モジュール単位、画面単位、チケット単位) ● Behatでは、1つのフィーチャファイル (拡張子 feature) ● Feature(フィーチャ): に続けて記述 Symfony2 x BDD
49.
シナリオ
● 特定のフィーチャの振舞を表現するシナリオ ● Scenario(シナリオ): に続けて記述 ● 1つのフィーチャには、複数のシナリオを記述 できる Symfony2 x BDD
50.
ステップ
● 1つのシナリオには、複数のステップを記述で きる ● Given(前提)、When(もし)、Then(なら ば)に続けて記述 ● Webテスト向けの組み込みステップがある Symfony2 x BDD
51.
Gherkin(ガーキン)
● Cucumber互換DSLの名前 Symfony2 x BDD
52.
Mink
● テストドライバー抽象化ライブラリ ● ドライバー抽象化レイヤーを設けることで、 (ほぼ)同じテストコードを使って、Symfony 内部でのテストとWebブラウザを使ったテスト の両方をサポート ● SymfonyDriver → 内部呼び出しでテスト GoutteDriver → HTTP経由呼び出し SahiDriver → FireFoxでテスト Symfony2 x BDD
53.
Sahi
● Seleniumみたいなヤツ ● http://sahi.co.in/w/sahi Symfony2 x BDD
54.
フィーチャファイルの 書き方 Symfony2 x BDD
55.
フィーチャファイル Symfony2 x BDD
56.
フィーチャファイル
フィーチャ Symfony2 x BDD
57.
フィーチャファイル
シナリオ Symfony2 x BDD
58.
フィーチャファイル
ステップ(前提) Symfony2 x BDD
59.
フィーチャファイル
ステップ(条件) Symfony2 x BDD
60.
フィーチャファイル
ステップ(期待する結果) Symfony2 x BDD
61.
フィーチャファイル
先頭にlanguageを指定すれば、日本語キーワードに対応 Symfony2 x BDD
62.
フィーチャファイル Symfony2 x BDD
63.
フィーチャファイル
● フィーチャファイルは、バンドルのFeatures ディレクトリ直下に作成する 「test.feature」など Symfony2 x BDD
64.
テストを実行してみる Symfony2 x BDD
65.
Behatでのテスト実行
● Behat:test:bundle バンドル名 Symfony2 x BDD
66.
Behatでのテスト実行
● Behat:test:bundle バンドル名 シナリオ実行 Symfony2 x BDD
67.
Behatでのテスト実行
● Behat:test:bundle バンドル名 実行結果 Symfony2 x BDD
68.
Behatでのテスト実行
● Behat:test:bundle バンドル名 この辺注目 Symfony2 x BDD
69.
ステップの実行の仕組み Symfony2 x BDD
70.
ステップの種類
● 組み込みステップ 最初から使えるステップ フィーチャファイルに記述するだけで使える ● カスタムステップ 組み込みステップにない独自のルール フィーチャファイルに自由な文章で記述し、対応する コードをステップファイルに記述 Symfony2 x BDD
71.
組み込みステップの一覧
behat:test:bundle --steps バンドル Symfony2 x BDD
72.
組み込みステップの一覧
behat:test:bundle --steps --lang=ja バンドル Symfony2 x BDD
73.
組み込みステップの一覧
重要 ステップの一覧(=レシピ)を見なが ら、ざっくりとしたシナリオを記述し ていける (Webアプリケーションの場合) Symfony2 x BDD
74.
組み込みステップの一覧
重要 ステップの一覧(=レシピ)を見なが ら、ざっくりとしたシナリオを記述し ていける (Webアプリケーションの場合) テストコードを書く心理ハードルが低い Symfony2 x BDD
75.
組み込みステップの場所
● Mink内 src/Behat/Mink/Integration/step/ mink_steps.php 中をのぞいてみましょう Symfony2 x BDD
76.
組み込みステップのコード Symfony2 x BDD
77.
組み込みステップのコード
ステップ(正規表現) Symfony2 x BDD
78.
組み込みステップのコード
ステップのPHPテストコード Symfony2 x BDD
79.
組み込みステップのコード
● カスタムステップを実装する際にレシピがわり になります Symfony2 x BDD
80.
カスタムステップ
● カスタムステップは、 Features/steps/steps.php に記述する。 ● フィーチャファイルにカスタムステップを記述 してbehatコマンドを実行すると、未実装のカ スタムステップの雛形が表示される。 (先ほど見た画面) Symfony2 x BDD
81.
カスタムステップ Symfony2 x BDD
82.
カスタムステップ
steps.phpへコピペ Symfony2 x BDD
83.
カスタムステップ
● ステップがpendingになる ● あとはステップのコードを書くだけ Symfony2 x BDD
84.
カスタムステップ
● ステップメソッド内は結構何でもできる Symfony2 x BDD
85.
テストの書き方は
分かった。 早くテストファースト について教えてくれ Symfony2 x BDD
86.
後は
開発のサイクルに乗せるだけ + 慣 れ ろ ! Symfony2 x BDD
87.
テストファーストに持っていく
● まずはテストを書くことに慣れる ● たとえばechoデバッグを、テストコードで行う Symfony2 x BDD
88.
http://www.phpunit.de/manual/3.6/ja/writing-tests-for-phpunit.html Symfony2 x BDD
89.
テストファーストに持っていく
● まずはテストを書くことに慣れる ● たとえばechoデバッグを、テストコードで行う Symfony2 x BDD
90.
テストファーストに持っていく
● コード→テスト→コード→テスト・・・ Symfony2 x BDD
91.
テストファーストに持っていく
● コード→テスト→コード→テスト・・・ このループに慣れれば、 自然とテストを書きたくなります Symfony2 x BDD
92.
おまけ Symfony2 x BDD
93.
Behat応用(1)
● DDD(MDD) ユビキタス言語(DDD参照)を使い、ドメイン モデルのフィーチャ、シナリオ、ステップを記 述 →ドメインエキスパートにもメンテナンスでき る(可能性) →前提・もし・ならば、の制限を外すように DSLを拡張する(「・」など) Symfony2 x BDD
94.
Behat応用(2)
● ITS(Redmine)、Gitのブランチ、コミット等 も含めたワークフロー →Behat関係あるの? →ブランチの実装内容に対するテストコード、 フィーチャ、シナリオが一体となってGitリポジ トリで管理可能 →特にバグ修正の際に、ITSのチケットにいろ いろ書くのではなく、バグ修正用フィーチャに 説明などを書くようにする Symfony2 x BDD
95.
是非Behatを 使ってみてください! Symfony2 x BDD
Jetzt herunterladen