Submit Search
Upload
Behat+Symfony2ではじめるBDD超入門
•
Download as KEY, PDF
•
12 likes
•
4,364 views
晃 遠山
Follow
2012-08-25 社内勉強会 テーマ別勉強会資料
Read less
Read more
Report
Share
Report
Share
1 of 68
Download now
Recommended
Phpstudy44 Zend Frameworkが抱えている問題は多い。
Phpstudy44 Zend Frameworkが抱えている問題は多い。
sasezaki
PHP Conference Japan 2010 : Zend Framewrok
PHP Conference Japan 2010 : Zend Framewrok
sasezaki
phpcon2013_zf
phpcon2013_zf
sasezaki
AspectMock 最強のモッキングフレームワーク
AspectMock 最強のモッキングフレームワーク
kenjis
はじめてのCodeIgniter
はじめてのCodeIgniter
Yuya Matsushima
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
晃 遠山
それPhpStormで出来るよ #phpstudy
それPhpStormで出来るよ #phpstudy
晃 遠山
Recommended
Phpstudy44 Zend Frameworkが抱えている問題は多い。
Phpstudy44 Zend Frameworkが抱えている問題は多い。
sasezaki
PHP Conference Japan 2010 : Zend Framewrok
PHP Conference Japan 2010 : Zend Framewrok
sasezaki
phpcon2013_zf
phpcon2013_zf
sasezaki
AspectMock 最強のモッキングフレームワーク
AspectMock 最強のモッキングフレームワーク
kenjis
はじめてのCodeIgniter
はじめてのCodeIgniter
Yuya Matsushima
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
晃 遠山
それPhpStormで出来るよ #phpstudy
それPhpStormで出来るよ #phpstudy
晃 遠山
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
Yusuke Ando
Windows で PHP をビルドしてみた
Windows で PHP をビルドしてみた
y-uti
ゲーム開発プロセスカイゼン
ゲーム開発プロセスカイゼン
光晶 上原
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考える
Takuya Sato
phpspecで始めるBDD
phpspecで始めるBDD
Yuuki Takezawa
JIT for PHP を試した
JIT for PHP を試した
y-uti
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
Naruto TAKAHASHI
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
y-uti
Djangoフレームワークの紹介
Djangoフレームワークの紹介
Shinya Okano
20120616i phonedeveloperworkshop
20120616i phonedeveloperworkshop
Yoichiro Sakurai
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
賢 秋穂
go-apt-cacher/mirror
go-apt-cacher/mirror
yutannihilation
PECL operator で演算子オーバーロード
PECL operator で演算子オーバーロード
y-uti
PHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩く
shinjiigarashi
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
Kazuhiro Hara
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
Hiroaki NAKADA
インフラエンジニア勉強会hbstudyについて
インフラエンジニア勉強会hbstudyについて
Toshiaki Baba
2009 PHP初心者
2009 PHP初心者
Hideo Kashioka
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
sasezaki
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
behatで始めるBDD
behatで始めるBDD
Tsutomu Chikuba
Behatで行う、E2Eテスト入門
Behatで行う、E2Eテスト入門
leverages_event
More Related Content
What's hot
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
Yusuke Ando
Windows で PHP をビルドしてみた
Windows で PHP をビルドしてみた
y-uti
ゲーム開発プロセスカイゼン
ゲーム開発プロセスカイゼン
光晶 上原
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考える
Takuya Sato
phpspecで始めるBDD
phpspecで始めるBDD
Yuuki Takezawa
JIT for PHP を試した
JIT for PHP を試した
y-uti
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
Naruto TAKAHASHI
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
y-uti
Djangoフレームワークの紹介
Djangoフレームワークの紹介
Shinya Okano
20120616i phonedeveloperworkshop
20120616i phonedeveloperworkshop
Yoichiro Sakurai
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
賢 秋穂
go-apt-cacher/mirror
go-apt-cacher/mirror
yutannihilation
PECL operator で演算子オーバーロード
PECL operator で演算子オーバーロード
y-uti
PHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩く
shinjiigarashi
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
Kazuhiro Hara
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
Hiroaki NAKADA
インフラエンジニア勉強会hbstudyについて
インフラエンジニア勉強会hbstudyについて
Toshiaki Baba
2009 PHP初心者
2009 PHP初心者
Hideo Kashioka
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
sasezaki
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
What's hot
(20)
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
Windows で PHP をビルドしてみた
Windows で PHP をビルドしてみた
ゲーム開発プロセスカイゼン
ゲーム開発プロセスカイゼン
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考える
phpspecで始めるBDD
phpspecで始めるBDD
JIT for PHP を試した
JIT for PHP を試した
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
Djangoフレームワークの紹介
Djangoフレームワークの紹介
20120616i phonedeveloperworkshop
20120616i phonedeveloperworkshop
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
go-apt-cacher/mirror
go-apt-cacher/mirror
PECL operator で演算子オーバーロード
PECL operator で演算子オーバーロード
PHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩く
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
インフラエンジニア勉強会hbstudyについて
インフラエンジニア勉強会hbstudyについて
2009 PHP初心者
2009 PHP初心者
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Viewers also liked
behatで始めるBDD
behatで始めるBDD
Tsutomu Chikuba
Behatで行う、E2Eテスト入門
Behatで行う、E2Eテスト入門
leverages_event
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
leverages_event
BDD with Behat and Symfony2
BDD with Behat and Symfony2
katalisha
Codeceptionの受け入れテストをマネる
Codeceptionの受け入れテストをマネる
infinite_loop
「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界
Nozomi Ito
いつでも聞けるTDD入門 #TDDBC_NAGOYA
いつでも聞けるTDD入門 #TDDBC_NAGOYA
kyon mm
nginxの紹介
nginxの紹介
Takashi Takizawa
サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】
サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】
dreamarts_pr
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
真吾 吉田
【17-D-3】リーンスタートアップとスマートなエンジニアリングの葛藤 #devsumi #devsumiD
【17-D-3】リーンスタートアップとスマートなエンジニアリングの葛藤 #devsumi #devsumiD
満徳 関
【17-E-1】自動化はどこに向かうのか~まだ開発・運用の自動化で消耗しているの?~
【17-E-1】自動化はどこに向かうのか~まだ開発・運用の自動化で消耗しているの?~
Masahito Zembutsu
サーバーレスの今とこれから
サーバーレスの今とこれから
真吾 吉田
Viewers also liked
(13)
behatで始めるBDD
behatで始めるBDD
Behatで行う、E2Eテスト入門
Behatで行う、E2Eテスト入門
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
BDD with Behat and Symfony2
BDD with Behat and Symfony2
Codeceptionの受け入れテストをマネる
Codeceptionの受け入れテストをマネる
「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界
いつでも聞けるTDD入門 #TDDBC_NAGOYA
いつでも聞けるTDD入門 #TDDBC_NAGOYA
nginxの紹介
nginxの紹介
サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】
サーバレスアーキテクチャにしてみた【デブサミ2017 17-E-2】
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
【17-D-3】リーンスタートアップとスマートなエンジニアリングの葛藤 #devsumi #devsumiD
【17-D-3】リーンスタートアップとスマートなエンジニアリングの葛藤 #devsumi #devsumiD
【17-E-1】自動化はどこに向かうのか~まだ開発・運用の自動化で消耗しているの?~
【17-E-1】自動化はどこに向かうのか~まだ開発・運用の自動化で消耗しているの?~
サーバーレスの今とこれから
サーバーレスの今とこれから
Similar to Behat+Symfony2ではじめるBDD超入門
Symfony2 How to create your Bundle
Symfony2 How to create your Bundle
chobi e
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテスト
Yoichiro Sakurai
WordPressプラグイン作成入門
WordPressプラグイン作成入門
Yuji Nojima
behatエクステンションの作り方
behatエクステンションの作り方
Ryo Tomidokoro
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ
Hiromu Shioya
2009年のPHPフレームワーク
2009年のPHPフレームワーク
Takuya Sato
WebAPIではじめるphp入門
WebAPIではじめるphp入門
Hiroaki Murayama
退職PDFメーカーの作り方
退職PDFメーカーの作り方
Yo Ya
Python東海GAEやってみた
Python東海GAEやってみた
Mori Shingo
Start!! Ruby
Start!! Ruby
mitim
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
ericsagnes
CodeIgniter東京勉強会 2011.05.14
CodeIgniter東京勉強会 2011.05.14
Takako Miyagawa
テンプレートエンジンって何?
テンプレートエンジンって何?
Shoichi Takahashi
Build 番号の自動更新スクリプトについて #cocoa_kansai
Build 番号の自動更新スクリプトについて #cocoa_kansai
Tomohiro Kumagai
PHP With Windows binary
PHP With Windows binary
Masahiko Sakamoto
20121115 fukuoka sublime0_kuroneko
20121115 fukuoka sublime0_kuroneko
Kohki Nakashima
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
Hideharu MATSUFUJI
SATySFiでDSLを作る/使うと便利って話
SATySFiでDSLを作る/使うと便利って話
YuitoMurase1
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
Similar to Behat+Symfony2ではじめるBDD超入門
(20)
Symfony2 How to create your Bundle
Symfony2 How to create your Bundle
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテスト
WordPressプラグイン作成入門
WordPressプラグイン作成入門
behatエクステンションの作り方
behatエクステンションの作り方
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ
2009年のPHPフレームワーク
2009年のPHPフレームワーク
WebAPIではじめるphp入門
WebAPIではじめるphp入門
退職PDFメーカーの作り方
退職PDFメーカーの作り方
Python東海GAEやってみた
Python東海GAEやってみた
Start!! Ruby
Start!! Ruby
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
CodeIgniter東京勉強会 2011.05.14
CodeIgniter東京勉強会 2011.05.14
テンプレートエンジンって何?
テンプレートエンジンって何?
Build 番号の自動更新スクリプトについて #cocoa_kansai
Build 番号の自動更新スクリプトについて #cocoa_kansai
PHP With Windows binary
PHP With Windows binary
20121115 fukuoka sublime0_kuroneko
20121115 fukuoka sublime0_kuroneko
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
SATySFiでDSLを作る/使うと便利って話
SATySFiでDSLを作る/使うと便利って話
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Behat+Symfony2ではじめるBDD超入門
1.
Behat+Symfony2ではじめる
BDD超入門 2012-08-25 遠山 晃
2.
自己紹介 遠山 晃 所属: 株式会社システナ
主にWeb系の開発中心、iOSも少々 最近はCI導入とかも色々やってます https://github.com/vexus2
3.
アジェンダ TDD・BDDとは? Behatについて Symfony2について Behatで振舞駆動
4.
皆さん、テストコード 書いてますか?
5.
テスト書いてますか?
いつも書いてる やり方がわからない 面倒なイメージ 7% 40% 53% ※数字はイメージです
6.
そもそも・・・ テストコードってなに?
7.
http://www.phpunit.de/manual/3.6/ja/writing-tests-for-phpunit.html
8.
array_push()メソッドのテスト http://www.phpunit.de/manual/3.6/ja/writing-tests-for-phpunit.html
9.
配列に対して‘foo’をarray_pushした場合に、 配列の末尾に‘foo’が入っていることの確認
http://www.phpunit.de/manual/3.6/ja/writing-tests-for-phpunit.html
10.
代表的なテスティングFW xUnit JUnit
PHPUnit etc xSpec RSpec JSSpec
11.
BDDの説明に入る前に
12.
TDDってなに? T Driven Development(テスト駆動開
est 発) テストコードを先に書いて、 Red→Green→リファクタリングを繰り 返す開発手法 テストファーストと良く混同される
13.
BDDってなに? Beer Drinking Development Behavior
Driven Development(振舞駆動 開発) TDDの類似開発技法。先に書くテスト コードでアプリケーションの『振舞』 を記載する。
14.
TDDとBDD 何が違うの?
15.
TDDとの違い コード品質を高めるという目的は同じ テスト観点が『アプリケーション寄 り』だけでなく『ユーザ寄り』を含む かどうかが大きな違い 二面性
16.
本題に入る前に、 ざっくりSymfony2
17.
Symfony2の特徴 PHP5.3以降に対応 フルスタックフレームワーク Bundle DIコンテナ
18.
ディレクトリ構成 |-app/ |-AppKernel.php
←アプリケーションの設定系 |-config/ |-logs/ |- bin/ |- src/ |-Regist/ ←主に開発で使う |-RegistBundle |-web/ |-app_dev.php |-app.php |-bundles/
19.
Symfony2の起動イメージ |-app/ |-AppKernel.php |-
src/ ② app.phpがカーネルを呼び出す |-Regist/ |-RegistBundle/ |-web/ ③アプリケーションのバンドルを読み込む |-app.php ① リクエスト
20.
Bundleって? Symfony2のアプリケーションの単位 要は「プラグイン」 基本的には「対話式ジェネレータ」を 使って作成
21.
Bundleの構成 |-src/Mini
|-BlogBundle |-Controller |-DefaultController |-DependencyInjection |-Configuration.php |-MiniBlogExtension.php |-Resources |-config |-routing.yml |-services.yml |-public |-doc |-views |-index.html.twig |-Test
22.
Behatもざっくりと
23.
Behatって? PHP用のBDDフレームワーク Gherkin 内部的にはSymfony2で作られてる Symfony2と親和性が高い
Symfony系以外のFWでも利用可能
24.
Behatを使うと テスト自体が日本語で書ける! テスト内容がわかりやすい ドキュメントとして出力させたものを そのまま設計書にも出来る テストコード自身が「動く設計書」
25.
Behat+Symfony2
環境構築
26.
Behat環境構築 PHPUnitの準備 Pleiadesを入れていれば3.X系がイン ストール済み
インストールされていなければ… $ pear channel-discover pear.phpunit.de $ pear channel-discover components.ez.no $ pear channel-discover pear.symfony-project.com $ pear install phpunit/PHPUnit
27.
Behat環境構築 プロジェクトを準備 今回はKnpIpsumのパッケージを使用
http://knplabs.jp/blog/knpipsum 以下のコマンドでインストール実行
28.
Windowsでやる場合
29.
コマンドプロンプト上で はUTF-8文字列が表示出
来ないので
30.
Windowsで環境構築 Behatコマンドを実行するとこうなる
31.
Windowsで環境構築 Behatコマンドを実行するとこうなる
chcp 65001なんて悪あがきは、 試すだけ時間の無駄なのでやめよう!
32.
どうすればいい?
33.
今すぐ買いに行く
34.
それでもWindowsでやる
なら!
35.
Windowsで環境構築 CygwinとTeraTermを入れて、 TeraTerm上からCygwinを起動させる!
36.
Windowsで環境構築 CygwinとTeraTermを入れて、 TeraTerm上からCygwinを起動させる!
これで十分実用レベル!!
37.
流れ
38.
フィーチャを書く →Red→Green→リファ クタリング→フィーチャ
を書く....
39.
ひたすら繰り返すのみ!! 習うより慣れろな感覚
40.
まずはフィーチャファイ ルを書いてみよう
41.
フィーチャファイル Regist.feature # language:ja
フィーチャ: トップページ表示 トップページを表示した際のメッセージを表示する。 シナリオ: Welcomeメッセージの表示 前提 "/" を表示している ならば "ここから初める(予定)" と表示されていること
42.
フィーチャファイル Regist.feature
言語を指定 # language:ja フィーチャ: トップページ表示 トップページを表示した際のメッセージを表示する。 シナリオ: Welcomeメッセージの表示 前提 "/" を表示している ならば "ここから初める(予定)" と表示されていること
43.
フィーチャファイル Regist.feature
フィーチャ # language:ja フィーチャ: トップページ表示 トップページを表示した際のメッセージを表示する。 シナリオ: Welcomeメッセージの表示 前提 "/" を表示している ならば "ここから初める(予定)" と表示されていること
44.
フィーチャファイル Regist.feature # language:ja
フィーチャ: トップページ表示 トップページを表示した際のメッセージを表示する。 [シナリオ] シナリオ: Welcomeメッセージの表示 特定の振舞について記載 前提 "/" を表示している ならば "ここから初める(予定)" と表示されていること
45.
フィーチャファイル Regist.feature # language:ja
フィーチャ: トップページ表示 トップページを表示した際のメッセージを表示する。 シナリオ: Welcomeメッセージの表示 [ステップ] 前提 "/" を表示している 前提条件 ならば "ここから初める(予定)" と表示されていること
46.
フィーチャファイル Regist.feature # language:ja
フィーチャ: トップページ表示 トップページを表示した際のメッセージを表示する。 シナリオ: Welcomeメッセージの表示 [ステップ] 前提 "/" を表示している 期待動作を記載 ならば "ここから初める(予定)" と表示されていること
47.
フィーチャファイル Regist.feature
半角スペースを空ける # language:ja フィーチャ:○トップページ表示 トップページを表示した際のメッセージを表示する。 シナリオ:○ Welcomeメッセージの表示 前提○"/"○を表示している ならば○"ここから初める(予定)"○と表示されていること
48.
実行してみる。
49.
フィーチャ実行
シナリオ実行
50.
フィーチャ実行
実行結果
51.
いきなりGreen
52.
なんで?
53.
フィーチャファイル シナリオ: つぶやきを投稿する
もし "/" を表示している ならば "ここから初める(予定)" と表示されていること 本来なら指定されたURLにアクセスするためのテスト コードを書かないと動かないけど、 『特定の記法』に沿って書いた場合に、決められた動 きをしてくれる!!
54.
=組み込みフィーチャ
55.
組み込みフィーチャ 予め定義されている文言どおりに フィーチャを書くだけで、特定の動作 のテストをしてくれる!
56.
組み込みフィーチャ 『もし “/” を表示している』 ような場合、自動的に指定された (base_url)URLにアクセスする
57.
組み込みフィーチャ例 前提 /^(?:|ユーザーは )"(?P<page>[^s]+)"
を表示している$/ もし /^(?:|ユーザーが )"(?P<page>[^s]+)" へ移動する$/ もし /^(?:|ユーザーが )ページをリロードする$/ もし /^(?:|ユーザーが )"(?P<button>(?:[^"]|")*)" ボタンをクリックする$/ もし /^(?:|ユーザーが )"(?P<link>(?:[^"]|")*)" のリンク先へ移動する$/ もし /^(?:|ユーザーが)次のように入力する:$/ ならば /^(?:|ユーザーが )(?P<page>[^s]+) を表示していること$/ ならば /^(?:|画面に )"(?P<text>(?:[^"]|")*)" と表示されていること$/ ならば /^(?:|画面に )"(?P<text>(?:[^"]|")*)" と表示されていないこと$/ ならば /^レスポンスに "(?P<text>(?:[^"]|")*)" が含まれていないこと$/ ならば /^"(?P<element>[^"]*)" エレメントに "(?P<text>(?:[^"]|")*)" と表示されていること$/ ならば /^最後のレスポンスを表示$/ ならば /^最後のレスポンスをブラウザで表示$/
58.
組み込みフィーチャ例 前提 /^(?:|ユーザーは )"(?P<page>[^s]+)"
を表示している$/ もし /^(?:|ユーザーが )"(?P<page>[^s]+)" へ移動する$/ もし /^(?:|ユーザーが )ページをリロードする$/ もし /^(?:|ユーザーが )"(?P<button>(?:[^"]|")*)" ボタンをクリックする$/ もし /^(?:|ユーザーが )"(?P<link>(?:[^"]|")*)" のリンク先へ移動する$/ もし /^(?:|ユーザーが)次のように入力する:$/ ならば /^(?:|ユーザーが )(?P<page>[^s]+) を表示していること$/ ならば /^(?:|画面に )"(?P<text>(?:[^"]|")*)" と表示されていること$/ ならば /^(?:|画面に )"(?P<text>(?:[^"]|")*)" と表示されていないこと$/ ならば /^レスポンスに "(?P<text>(?:[^"]|")*)" が含まれていないこと$/ ならば /^"(?P<element>[^"]*)" エレメントに "(?P<text>(?:[^"]|")*)" と表示されていること$/ ならば /^最後のレスポンスを表示$/ ならば /^最後のレスポンスをブラウザで表示$/ $ behat -dl で確認可能
59.
組み込みフィーチャでカ バー出来ない範囲は、 自分でステップを定義
60.
フィーチャ実行
失敗(赤)
61.
フィーチャ実行
スキップ(青)
62.
フィーチャ実行
ステップ未定義(黄色)
63.
フィーチャ実行
64.
未定義ステップがある場 合は、実装すべきメソッ ドを教えてくれる
65.
フィーチャ実行
そのままコピペして使える!
66.
実際に 手を動かしてみよう
67.
みなさまの開発ライフの 一助になれば幸いです。
68.
ご清聴 ありがとうございました。
Editor's Notes
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Download now