Recommended
PDF
PDF
PDF
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
PDF
PDF
PDF
PDF
PPTX
[超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例
PDF
PDF
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
PDF
anyenv + phpenv + php-build が便利すぎる件
PDF
PDF
KEY
PDF
PDF
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
PPTX
PHP x AWS でスケーラブルなシステムをつくろう
PPT
PPTX
Eggplant Functional - Lesson 9 (Japanese slides)
PDF
CakePHP最新情報 PHPカンファレンス関西2012
PPT
PPTX
テストしなイカ? Seleniumで自動ブラウザテスト
PPTX
あるあるLT〜サーバーサイドエンジニア〜 Vol.3
PDF
KEY
PPTX
PDF
PDF
PDF
Getting Started with Testing using PHPUnit
KEY
EC-CUBE + PHPUnit で 実践テスト駆動開発
More Related Content
PDF
PDF
PDF
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
PDF
PDF
PDF
PDF
PPTX
[超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例
What's hot
PDF
PDF
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
PDF
anyenv + phpenv + php-build が便利すぎる件
PDF
PDF
KEY
PDF
PDF
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
PPTX
PHP x AWS でスケーラブルなシステムをつくろう
PPT
PPTX
Eggplant Functional - Lesson 9 (Japanese slides)
PDF
CakePHP最新情報 PHPカンファレンス関西2012
PPT
PPTX
テストしなイカ? Seleniumで自動ブラウザテスト
PPTX
あるあるLT〜サーバーサイドエンジニア〜 Vol.3
PDF
KEY
PPTX
PDF
PDF
Similar to Cake php + php unitによる実践的ユニットテスト
PDF
Getting Started with Testing using PHPUnit
KEY
EC-CUBE + PHPUnit で 実践テスト駆動開発
PDF
Code igniterでテスト駆動開発 資料作成中
PDF
PPTX
PPTX
CakePHP3.x での各種実装例 ~| PHP Tech Bash 20171121 ~
PPT
PDF
PPT
PDF
PDF
PDF
PPT
PDF
Eclipse PDT + MakeGoodによるPHPコードのテスト
PDF
Introduction to Continuous Test Runner MakeGood
PDF
PDF
PDF
Angular js meets cakephp at cloud on the beach 2014 前夜祭
PPT
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
PDF
Recently uploaded
PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
PDF
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
PDF
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
PDF
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
PDF
PMBOK 7th Edition Project Management Process Scrum
PDF
PMBOK 7th Edition_Project Management Context Diagram
PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
PDF
FY2025 IT Strategist Afternoon I Question-1 Balanced Scorecard
PDF
PMBOK 7th Edition_Project Management Process_WF Type Development
Cake php + php unitによる実践的ユニットテスト 1. 2. 3. 4. 6. 7. 8. 10. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. メソッドの副作用
public function url2link($url = null) {
return empty($url) ? $url : "<a href="{$url}">{$url}</a>";
}
副作用のないコードの例
副作用のあるコードの例
public function createHoge($data) {
$this->create();
return $this->save($data);
}
メソッドの実行は外部に影響しない
メソッドの実行が外部に影響する
24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. プライベートメソッドのテスト
// 事前準備
$__privateMethod = new ReflectionMethod(‘Subject’, ‘__privateMethod’);
$__privateMethod->setAccessible(true); // アクセス権限をpublicに変更
// 実行
$__privateMethod->invoke($this->Subject, null);
// 検証
// …
① ReflectionMethodを使ってアクセス権限書き換え
39. 40. モック使用時のアンチパターン
public function register() {
App::uses("File", "Utility");
$file = new File("/path/to/file");
if ($file->open()) {
// …
}
}
例えばプロダクトコードでの場当たり的オブジェクト生成
• あれ、テストのときもFile動いちゃうじゃんw
• モックへの差し替えが難しい
→ テストが難しくなる
→ テストを書かない・書いても複雑なテストに
41. public function startup() {
App::uses("File", "Utility");
$this->File = new File("/path/to/file");
}
public function register() {
if ($this->File->open()) {
$filetext = $this->File->read();
}
}
アンチパターンへの対処
• オブジェクトを委譲しておくことで対処
• しかし本質的に重要なのはテストの声を聞くこと
テストの書きづらさ=プロダクトコードの問題
42. 43. 44. 45. 46. 47. 48.