Submit Search
Upload
phpspecで始めるBDD
•
14 likes
•
10,351 views
Yuuki Takezawa
Follow
BDDと開発サイクルについて、phpspecでBDDを始めるには
Read less
Read more
Software
Report
Share
Report
Share
1 of 39
Download now
Download to read offline
Recommended
PHPUnit でテスト駆動開発を始めよう
PHPUnit でテスト駆動開発を始めよう
Yuya Takeyama
Laravel5.1 Release
Laravel5.1 Release
Yuuki Takezawa
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
よりよいPHPUnitの実行方法を求めて
よりよいPHPUnitの実行方法を求めて
Akio Ishida
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
ichikaway
Behat Driven Development
Behat Driven Development
Ryo Tomidokoro
AspectMock 最強のモッキングフレームワーク
AspectMock 最強のモッキングフレームワーク
kenjis
今日から始めるLaravel
今日から始めるLaravel
Masaru Matsuo
Recommended
PHPUnit でテスト駆動開発を始めよう
PHPUnit でテスト駆動開発を始めよう
Yuya Takeyama
Laravel5.1 Release
Laravel5.1 Release
Yuuki Takezawa
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
よりよいPHPUnitの実行方法を求めて
よりよいPHPUnitの実行方法を求めて
Akio Ishida
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
ichikaway
Behat Driven Development
Behat Driven Development
Ryo Tomidokoro
AspectMock 最強のモッキングフレームワーク
AspectMock 最強のモッキングフレームワーク
kenjis
今日から始めるLaravel
今日から始めるLaravel
Masaru Matsuo
PHP agile test tips
PHP agile test tips
Tsutomu Chikuba
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
Ohishi Mikage
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
Cake php + php unitによる実践的ユニットテスト
Cake php + php unitによる実践的ユニットテスト
慶信 若松
Behatで行う、E2Eテスト入門
Behatで行う、E2Eテスト入門
leverages_event
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
Yahoo!デベロッパーネットワーク
nGrinder3 : だれもが簡単にできる性能テスト
nGrinder3 : だれもが簡単にできる性能テスト
JunHo Yoon
Laravel 5.1 LTSでサービスを作る
Laravel 5.1 LTSでサービスを作る
infinite_loop
PHPデプロイツールの世界
PHPデプロイツールの世界
Yuuki Takezawa
初めての単体テスト
初めての単体テスト
Basuke Suzuki
Laravelのパッケージのテストに便利なパッケージ
Laravelのパッケージのテストに便利なパッケージ
Yuta Nagamiya
活動報告9 laravel5入門-
活動報告9 laravel5入門-
vx-pc-club
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
Masashi Shinbara
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
sohta
Phpstudy44 Zend Frameworkが抱えている問題は多い。
Phpstudy44 Zend Frameworkが抱えている問題は多い。
sasezaki
Net fringejp2016
Net fringejp2016
Yusuke Fujiwara
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
aha_oretama
あるあるLT〜サーバーサイドエンジニア〜 Vol.3
あるあるLT〜サーバーサイドエンジニア〜 Vol.3
Keiichi Hagiwara
Laravelとテストについて
Laravelとテストについて
Takeo Noda
.NET vNext
.NET vNext
信之 岩永
zend-expressiveを触ってみよう
zend-expressiveを触ってみよう
Yuuki Takezawa
php開発で使うタスクランナー gulp
php開発で使うタスクランナー gulp
Yuuki Takezawa
More Related Content
What's hot
PHP agile test tips
PHP agile test tips
Tsutomu Chikuba
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
Ohishi Mikage
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
Cake php + php unitによる実践的ユニットテスト
Cake php + php unitによる実践的ユニットテスト
慶信 若松
Behatで行う、E2Eテスト入門
Behatで行う、E2Eテスト入門
leverages_event
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
Yahoo!デベロッパーネットワーク
nGrinder3 : だれもが簡単にできる性能テスト
nGrinder3 : だれもが簡単にできる性能テスト
JunHo Yoon
Laravel 5.1 LTSでサービスを作る
Laravel 5.1 LTSでサービスを作る
infinite_loop
PHPデプロイツールの世界
PHPデプロイツールの世界
Yuuki Takezawa
初めての単体テスト
初めての単体テスト
Basuke Suzuki
Laravelのパッケージのテストに便利なパッケージ
Laravelのパッケージのテストに便利なパッケージ
Yuta Nagamiya
活動報告9 laravel5入門-
活動報告9 laravel5入門-
vx-pc-club
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
Masashi Shinbara
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
sohta
Phpstudy44 Zend Frameworkが抱えている問題は多い。
Phpstudy44 Zend Frameworkが抱えている問題は多い。
sasezaki
Net fringejp2016
Net fringejp2016
Yusuke Fujiwara
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
aha_oretama
あるあるLT〜サーバーサイドエンジニア〜 Vol.3
あるあるLT〜サーバーサイドエンジニア〜 Vol.3
Keiichi Hagiwara
Laravelとテストについて
Laravelとテストについて
Takeo Noda
.NET vNext
.NET vNext
信之 岩永
What's hot
(20)
PHP agile test tips
PHP agile test tips
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Cake php + php unitによる実践的ユニットテスト
Cake php + php unitによる実践的ユニットテスト
Behatで行う、E2Eテスト入門
Behatで行う、E2Eテスト入門
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
nGrinder3 : だれもが簡単にできる性能テスト
nGrinder3 : だれもが簡単にできる性能テスト
Laravel 5.1 LTSでサービスを作る
Laravel 5.1 LTSでサービスを作る
PHPデプロイツールの世界
PHPデプロイツールの世界
初めての単体テスト
初めての単体テスト
Laravelのパッケージのテストに便利なパッケージ
Laravelのパッケージのテストに便利なパッケージ
活動報告9 laravel5入門-
活動報告9 laravel5入門-
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
Phpstudy44 Zend Frameworkが抱えている問題は多い。
Phpstudy44 Zend Frameworkが抱えている問題は多い。
Net fringejp2016
Net fringejp2016
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
あるあるLT〜サーバーサイドエンジニア〜 Vol.3
あるあるLT〜サーバーサイドエンジニア〜 Vol.3
Laravelとテストについて
Laravelとテストについて
.NET vNext
.NET vNext
Viewers also liked
zend-expressiveを触ってみよう
zend-expressiveを触ってみよう
Yuuki Takezawa
php開発で使うタスクランナー gulp
php開発で使うタスクランナー gulp
Yuuki Takezawa
Laravel / Lumen 次の一歩
Laravel / Lumen 次の一歩
Yuuki Takezawa
LaravelとMVCの先へ
LaravelとMVCの先へ
Yuuki Takezawa
behatで始めるBDD
behatで始めるBDD
Tsutomu Chikuba
今更はじめるCucumber
今更はじめるCucumber
Tomohiro Nishimura
KPTのすすめ
KPTのすすめ
Tomohiro Nishimura
Behat+Symfony2ではじめるBDD超入門
Behat+Symfony2ではじめるBDD超入門
晃 遠山
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
hakoika-itwg
CakePHP3ウォークスルー
CakePHP3ウォークスルー
Tomoki Hasegawa
最近の単体テスト
最近の単体テスト
Ken Morishita
ひよこテスト駆動開発(PHPカンファレンス2014)
ひよこテスト駆動開発(PHPカンファレンス2014)
Oonishi Keitarou
behatエクステンションの作り方
behatエクステンションの作り方
Ryo Tomidokoro
初心者向けPHPソースコード診断
初心者向けPHPソースコード診断
kitoku_magic
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれた
Moriyoshi Koizumi
Scrutinizer CIでPHPも静的解析 #phpstudy
Scrutinizer CIでPHPも静的解析 #phpstudy
Hiraku Nakano
とある事業の脱レガシー
とある事業の脱レガシー
Hisateru Tanaka
LaravelアプリケーションをSeleniumでテストしてみた
LaravelアプリケーションをSeleniumでテストしてみた
Yuta Ohashi
Test-driven Development with Drupal and Codeception (DrupalCamp Brighton)
Test-driven Development with Drupal and Codeception (DrupalCamp Brighton)
Cogapp
Codeceptionの受け入れテストをマネる
Codeceptionの受け入れテストをマネる
infinite_loop
Viewers also liked
(20)
zend-expressiveを触ってみよう
zend-expressiveを触ってみよう
php開発で使うタスクランナー gulp
php開発で使うタスクランナー gulp
Laravel / Lumen 次の一歩
Laravel / Lumen 次の一歩
LaravelとMVCの先へ
LaravelとMVCの先へ
behatで始めるBDD
behatで始めるBDD
今更はじめるCucumber
今更はじめるCucumber
KPTのすすめ
KPTのすすめ
Behat+Symfony2ではじめるBDD超入門
Behat+Symfony2ではじめるBDD超入門
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
CakePHP3ウォークスルー
CakePHP3ウォークスルー
最近の単体テスト
最近の単体テスト
ひよこテスト駆動開発(PHPカンファレンス2014)
ひよこテスト駆動開発(PHPカンファレンス2014)
behatエクステンションの作り方
behatエクステンションの作り方
初心者向けPHPソースコード診断
初心者向けPHPソースコード診断
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれた
Scrutinizer CIでPHPも静的解析 #phpstudy
Scrutinizer CIでPHPも静的解析 #phpstudy
とある事業の脱レガシー
とある事業の脱レガシー
LaravelアプリケーションをSeleniumでテストしてみた
LaravelアプリケーションをSeleniumでテストしてみた
Test-driven Development with Drupal and Codeception (DrupalCamp Brighton)
Test-driven Development with Drupal and Codeception (DrupalCamp Brighton)
Codeceptionの受け入れテストをマネる
Codeceptionの受け入れテストをマネる
Similar to phpspecで始めるBDD
Enterprise DevOps
Enterprise DevOps
智治 長沢
今、おさえておきたい DevOps
今、おさえておきたい DevOps
智治 長沢
JAWS FESTA Kansai 2013 | ビジネスに貢献する戦略的なITのためのDevOps
JAWS FESTA Kansai 2013 | ビジネスに貢献する戦略的なITのためのDevOps
智治 長沢
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
日本マイクロソフト株式会社
コーディング入門以前
コーディング入門以前
Yutaka Kinjyo
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
智治 長沢
バリデーション駆動開発(仮称)で プロジェクトメンバー全員を幸せにした話
バリデーション駆動開発(仮称)で プロジェクトメンバー全員を幸せにした話
Kentarou Takeda
RAD Studioで実践する継続的インテグレーション アプリとデベロッパーの価値を拡張するエッセンス #dcamp_jp
RAD Studioで実践する継続的インテグレーション アプリとデベロッパーの価値を拡張するエッセンス #dcamp_jp
智治 長沢
QA SUMMIT in GDC2013
QA SUMMIT in GDC2013
IGDA JAPAN
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
ITS fidel
ITS fidel
Fidel Softech P. Ltd
TDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
サービス開発における工程
サービス開発における工程
Hidetoshi Mori
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
Koichi ITO
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
Makoto Iguchi
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
Akira Inoue
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
Rakuten Group, Inc.
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
Ryo Mitoma
Test automation strategy for .net core 3 transition
Test automation strategy for .net core 3 transition
Tatsuya Ishikawa
Coderetreat
Coderetreat
YAMANE Toshiaki
Similar to phpspecで始めるBDD
(20)
Enterprise DevOps
Enterprise DevOps
今、おさえておきたい DevOps
今、おさえておきたい DevOps
JAWS FESTA Kansai 2013 | ビジネスに貢献する戦略的なITのためのDevOps
JAWS FESTA Kansai 2013 | ビジネスに貢献する戦略的なITのためのDevOps
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
コーディング入門以前
コーディング入門以前
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
バリデーション駆動開発(仮称)で プロジェクトメンバー全員を幸せにした話
バリデーション駆動開発(仮称)で プロジェクトメンバー全員を幸せにした話
RAD Studioで実践する継続的インテグレーション アプリとデベロッパーの価値を拡張するエッセンス #dcamp_jp
RAD Studioで実践する継続的インテグレーション アプリとデベロッパーの価値を拡張するエッセンス #dcamp_jp
QA SUMMIT in GDC2013
QA SUMMIT in GDC2013
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
ITS fidel
ITS fidel
TDDはじめる前に
TDDはじめる前に
サービス開発における工程
サービス開発における工程
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
Test automation strategy for .net core 3 transition
Test automation strategy for .net core 3 transition
Coderetreat
Coderetreat
phpspecで始めるBDD
1.
phpspecで始める BDD yuuki takezawa
2.
profile • ytake(GitHub), ex_takezawa(twitter) •
java, php, node.js, RDBMS, NoSQL, VoltDB • 初福岡
3.
Laravelエキスパート養成読本4章担当 ご興味がある方は是非お願いします
4.
What is BDD? (Behavior
Driven Development)?
5.
開発のサイクルを 振り返りましょう
6.
小さい範囲での開発
7.
テスト コーディング テストを先に記述し、 実装に着手 テストが成功するまで 最小限のサイクルで開発
8.
より大きな範囲
9.
テスト コーディング 小さい範囲のサイクルは そのままに 設計 設計とリファクタリング 高い品質へ
10.
何のためのサイクルですか?
11.
アジャイルとの関連性も 一つのポイント
12.
技術的卓越性と 優れた設計に対する 不断の注意が 機敏さを高めます
13.
実装コードが正しく動くか? 実装要件を満たすか?
14.
テストとリファクタリングを 繰り返す -> 継続的インテグレーション
15.
ビヘイビア駆動開発とは?
16.
開発スケジュール • データベースライブラリ入れ替え XX日 •
メルマガ発行のため、 Queueの導入と実装 XX日 • といった工数の出し方したことありませんか?
17.
ビジネスの観点で 評価ができるか?
18.
プロジェクトオーナーの存在
19.
情報を伝えるもっとも効率的 で効果的な方法は フェイス・トゥ・フェイスで 話をすることです
20.
ユーザーストーリー
21.
<役割>として <機能>が出来る それは<ビジネスの価値> のためだ
22.
テスト コーディング設計 プロダクトへの理解と品質 要件
23.
ストーリーをサポートする Behat 要求仕様をサポートする PHPSpec
24.
http://www.phpspec.net
25.
"require-dev": { "phpspec/phpspec": "~2.1" },
26.
PHPSpec • オブジェクトの振る舞いを仕様として記述 例). ○を追加したら配列に含まれること •
仕様(spec)を先に書いて実装する • 記述方法は自然言語(英語) => 仕様になる
27.
$ phpspec describe
App/FizzBuzz
28.
phpspec describe • 振る舞いを記述するクラスとして指定 •
実クラスが無くて構いません specファーストの為、対象はphpspecが作成
29.
namespace specApp; use PhpSpecObjectBehavior; use
ProphecyArgument; class FizzBuzzSpec extends ObjectBehavior { function it_is_initializable() { $this->shouldHaveType('AppFizzBuzz'); } }
30.
Specを記述 • スネークケースでit, またはitsから書き始める •
Spec内の$thisは振る舞うオブジェクトを指す • 存在すると仮定するメソッドを記述し、 返却すべき値を記述
31.
function it_return_1_for_1() { $this->transform(1)->shouldReturn(1); } function it_return_2_for_2() { $this->transform(2)->shouldReturn(2); } function
it_should_return_crazy_for_3() { $this->transform(3)->shouldReturn('crazy'); } 期待する返却値を記述
32.
$ phpspec run
33.
phpspec run • テストを実行 •
メソッドがない場合は作成 —fakeオプションで簡単な返却値も生成 • 失敗時のサポート
34.
35.
テスト失敗時 返却すべき値を表示してくれる わかりやすい
36.
よく利用するもの • モック • マッチャー
= assertに相当するもの • コンストラクタの振る舞い • featureファイルのサンプルが付属しています
37.
function let(Message $message) { $this->beConstructedWith($message); } function
it_is_initializable() { $this->shouldHaveType('AppFizzBuzz'); }
38.
function it_should_return_message_for_3( Message $message )
{ $message->getText(3) ->shouldBeCalled()->willReturn(‘message’); $this->transform(3)->shouldReturn('message'); }
39.
まとめ • 仕様書としてもカバー • 最小のサイクルとフェイス・トゥ・フェイス •
包括的なドキュメントよりも 動くソフトウェア • スクラムにも、個人開発にも
Download now