Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
PHPUnitの「Depends」を使うと次のテストに返り値を渡せるの、なんで?読むぞ! #p...
Search
asumikam
April 11, 2026
Programming
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHPUnitの「Depends」を使うと次のテストに返り値を渡せるの、なんで?読むぞ! #phpcon_odawara
PHPカンファレンス小田原 2026
https://phpcon-odawara.jp/ja/2026/
asumikam
April 11, 2026
More Decks by asumikam
See All by asumikam
Let's Build a Tiny PHPStan
asumikam
0
96
ちいさくPHPStanをつくってみる
asumikam
1
210
ときめかないミーティングはアップデートのシグナル #scrumosaka
asumikam
8
2.4k
「嘘をつくテスト」の失敗例から学ぶ 良いテストコード #frontend_phpcon_do
asumikam
0
1.2k
Harnessing the Power of Mocks and Stubs in PHPUnit / #laravellivejp
asumikam
1
1.2k
委員長たちの「コシ」
asumikam
0
580
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
670
「通るまでRe-run」から卒業!落ちないテストを書く勘所
asumikam
3
1.4k
PHPコミュニティのあるきかた & ちいさく PHPUnitをつくってみる / Tech Challenge Party 2026
asumikam
0
190
Other Decks in Programming
See All in Programming
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
470
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
350
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
120
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
440
速習iPhone Duo対応
yuukiw00w
2
960
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
450
JRuby: Past, Present, and Future
headius
0
220
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
440
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
440
残高管理から台帳サービスへの進化
artoy
0
140
GitHubハンズオン講座 — 実務レベルのチーム開発のフローを身につけよう
junhat6
0
120
カツオ、ご期待ください
suneo3476
0
150
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.5k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
460
Typedesign – Prime Four
hannesfritz
42
3.2k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
A Tale of Four Properties
chriscoyier
163
24k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Writing Fast Ruby
sferik
630
63k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
360
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
860
Transcript
1)16OJUͷʮ%FQFOETʯΛ͏ͱ ࣍ͷςετʹฦΓΛͤΔͷɺͳΜͰʁ ಡΉͧʂ BTVNJLBN
1)16OJUͷ"UUSJCVUFT
w 1)16OJUҎ߱ɺ%PDίϝϯτʹهड़͢Δํ๏͔Β 1)1ͷ"UUSJCVUFͱஈ֊తʹҠߦ͖ͯͨ͠ w Έͳ͞Μͷ͓ؾʹೖΓͷ1)16OJU"UUSJCVUFTͳΜͰ ͔͢ʁ 1)16OJUͷ"UUSJCVUFɺ৭ʑͬͯΔʁ
ͨͱ͑ɺ%BUB1SPWJEFSɻ
ͨͱ͑ɺ5FTU8JUIɻ
ͨͱ͑ɺ(SPVQɻ WFOEPSCJOQIQVOJUHSPVQTMPX
ͨͱ͑ɺ%FQFOET
w ͋Δςετϝιου͕ผͷςετϝιουʹʮґଘʯ͠ ͍ͯΔ͜ͱΛએݴ͢Δ"UUSJCVUF w ґଘݩͷςετ͕ޭ͢Δͱɺґଘઌςετ͕࣮ߦ͞Ε ͞ΒʹґଘݩͷฦΓ͕ґଘઌͷҾͱͯ͠͞ΕΔ w ࣦഊͨ͠߹ґଘઌͷςετʮ4ʢεΩοϓʣʯ ʹͳΔ 1)16OJU"UUSJCVUFT%FQFOET
1)16OJU"UUSJCVUFT%FQFOET
1)16OJU"UUSJCVUFT%FQFOET ґଘઌςετ
1)16OJU"UUSJCVUFT%FQFOET ґଘݩςετ͕ޭ͢Ε ґଘઌςετ͕࣮ߦ͞ΕΔ
1)16OJU"UUSJCVUFT%FQFOET ґଘݩςετ͕ࣦ͠ഊͨ͠Βɺ ͜ͷςετશମ͕ߦΘΕͳ͍
1)16OJU"UUSJCVUFT%FQFOET ͔͠ɺґଘݩͷσʔλΛड͚औΕΔʂ ʢ%FUB1SPWJEFSΈ͍ͨͩͳ🧐ʣ
ͳΜͰʁ
ؾʹͳΔʂʂʂ
ಡΉͧʂ
ࠓͷൃද w %FQFOET͕ͲΜͳΈͰಈ͍͍ͯΔ͔Λ ίʔυϦʔσ Οϯάͯ͠શʹཧղ͢Δ w %FQFOETͷ͍Ͳ͜Ζʁ
ਃ͠Ε·ͨ͠ w͋͢Έ 𝕏 !BTVNJLBN wגࣜձࣾϦϯέʔδ w1)1ΧϯϑΝϨϯεখాݪ࣮ߦҕһ
ಡΉͧ
w ಡΈ·ͨ͠ w αϚϦʔͱ͓ͯ͠ಧ͚͠·͢ w ग़ͯ͘ΔίʔυҙਤΛ͑ΔͨΊ؆қԽ͍ͯ͠Δͷ Ͱ࣮ࡍͷͷͱҟͳΓ·͢ ಡΉͧ ಡΉͧ
ͬ͘͟Γʙͷߏ "UUSJCVUFΛࢀߟʹςετΛฒͼସ͑Δ ґଘؔνΣοΫɾॲཧ ςετ࣮ߦ ฦΓͷ֨ೲ લॲཧ ࣮ॲཧ ಡΉͧ
ͬ͘͟Γʙͷߏ "UUSJCVUFΛࢀߟʹςετΛฒͼସ͑Δ ґଘؔνΣοΫɾॲཧ ςετ࣮ߦ ฦΓͷ֨ೲ લॲཧ ࣮ॲཧ ಡΉͧ
"UUSJCVUFΛࢀߟʹςετΛฒͼସ͑Δ > UFTU UFTU UFTU <%FQFOET bUFTU > ಡΉͧ
"UUSJCVUFΛࢀߟʹςετΛฒͼସ͑Δ > UFTU UFTU UFTU <%FQFOET bUFTU > > UFTU
UFTU UFTU ಡΉͧ
w <%FQFOET>Λ3F fl FDUJPOͰಡΈऔΓɺʮͲͷςετ͕ Կʹґଘ͍ͯ͠Δ͔ʯΛ෦දݱʹม͢Δ w ֤ςετʹʮࣗΑΓઌʹޭ͍ͯ͠ͳ͚ΕͳΒͳ͍ ςετͷϦετʯΛ࣋ͨͤΔ w ͦͷϦετΛͱʹɺґଘݩ͕ඞͣઌʹདྷΔΑ͏࣮ߦ
ॱΛΈସ͑Δ "UUSJCVUFΛࢀߟʹςετΛฒͼସ͑Δ ಡΉͧ
ͬ͘͟Γʙͷߏ "UUSJCVUFΛࢀߟʹςετΛฒͼସ͑Δ ςετ࣮ߦલ ςετ࣮ߦ ςετ࣮ߦޙ લॲཧ ࣮ॲཧ ಡΉͧ
1)16OJUa'SBNFXPSLa5FTU$BTFIBOEMF%FQFOEFODJFT ಡΉͧ
1)16OJUa'SBNFXPSLa5FTU$BTFIBOEMF%FQFOEFODJFT ґଘ͕ಛʹͳ͍߹Կ͠ͳ͍ ಡΉͧ
1)16OJUa'SBNFXPSLa5FTU$BTFIBOEMF%FQFOEFODJFT ґଘϦετΛ͙Δ͙Δ ಡΉͧ
1)16OJUa'SBNFXPSLa5FTU$BTFIBOEMF%FQFOEFODJFT ࠓ·ͰͷޭςετϦετΛΈͯ ΤϥʔʗεΩοϓॲཧ ಡΉͧ
1)16OJUa'SBNFXPSLa5FTU$BTFIBOEMF%FQFOEFODJFT ޭͨ͠ςετͷSFUVSO7BMVFΛऔಘ EFQFOEFODZ*OQVUʹ֨ೲ ಡΉͧ
1)16OJUa'SBNFXPSLa5FTU$BTFIBOEMF%FQFOEFODJFT ޭͨ͠ςετͷSFUVSO7BMVFΛऔಘ EFQFOEFODZ*OQVUʹ֨ೲ ˣ͍ͭೖΕ͔ͨ·ͩΘ͔Βͳ͍Ͷ ಡΉͧ
1)16OJUa'SBNFXPSLa5FTU$BTFIBOEMF%FQFOEFODJFT ޭͨ͠ςετͷSFUVSO7BMVFΛऔಘ EFQFOEFODZ*OQVUʹ֨ೲ ˢ͜ͷޙ͏ͷ͔ͳʁ ˣ͍ͭೖΕ͔ͨ·ͩΘ͔Βͳ͍Ͷ ಡΉͧ
ςετ࣮ߦલɺԿΛ͍ͯ͠Δʁ w ґଘݩͷςετ͕ͯ͢ޭࡁΈ͔Λ֬ೝ͢Δ w શ෦ޭ͍ͯ͠ΕςετͷҾΛ४උ͢Δ w ҰͭͰະޭͳΒςετεΩοϓ͞ΕΔ w SFUVSO7BMVF EFQFOEFODZ*OQVUʁ🧐
w ࣍ͷॲཧ(0 ಡΉͧ
ͬ͘͟Γʙͷߏ "UUSJCVUFΛࢀߟʹςετΛฒͼସ͑Δ ςετ࣮ߦલ ςετ࣮ߦ ςετ࣮ߦޙ લॲཧ ࣮ॲཧ ಡΉͧ
1)16OJUa'SBNFXPSLa5FTU$BTFSVO5FTU ಡΉͧ
1)16OJUa'SBNFXPSLa5FTU$BTFSVO5FTU EFQFOEFODZ*OQVUΛҾʹ JOWPLF5FTU.FUIPE࣮ߦʂ ಡΉͧ
1)16OJUa'SBNFXPSLa5FTU$BTFJOWPLF5FTU.FUIPE ςετέʔεͷݺͼग़͠ʙʙʂʂʂ ಡΉͧ
1)16OJUa'SBNFXPSLa5FTU$BTFJOWPLF5FTU.FUIPE ςετέʔεͷݺͼग़͠ʙʙʂʂʂ UFTU3FTVMUΛฦ͍ͯ͠Δɻ͏ͷ͔ʂʁ ಡΉͧ
1)16OJUa'SBNFXPSLa5FTU$BTFSVO5FTU ͪͳΉͱʜ UIJTEBUBʹEBUB1SPWJEFSͷ͕ ೖ͍ͬͯͨʂ ಡΉͧ
w ґଘݩςετʢͳͲʣͷฦΓΛ݁߹ͯ͠ҾΛΈ ཱͯɺςετϝιουΛݺͼग़͢ w UFTU3FTVMUʁ🧐 w ࣍ͷॲཧ(0 ςετ࣮ߦ࣌ɺԿΛ͍ͯ͠Δʁ ಡΉͧ
ͬ͘͟Γʙͷߏ "UUSJCVUFΛࢀߟʹςετΛฒͼସ͑Δ ςετ࣮ߦલ ςετ࣮ߦ ςετ࣮ߦޙ લॲཧ ࣮ॲཧ ಡΉͧ
1)16OJUa'SBNFXPSLa5FTU$BTF SVO#BSF 1)16OJUa5FTU3VOOFSa5FTU3FTVMUa1BTTFE5FTUT UFTU.FUIPE1BTTFE ಡΉͧ
1)16OJUa'SBNFXPSLa5FTU$BTF SVO#BSF 1)16OJUa5FTU3VOOFSa5FTU3FTVMUa1BTTFE5FTUT UFTU.FUIPE1BTTFE ฦΓΛड͚औͬͯ UFTU.FUIPE1BTTFEʹ͠ʜ ಡΉͧ
1)16OJUa'SBNFXPSLa5FTU$BTF SVO#BSF 1)16OJUa5FTU3VOOFSa5FTU3FTVMUa1BTTFE5FTUT UFTU.FUIPE1BTTFE ಡΉͧ
1)16OJUa'SBNFXPSLa5FTU$BTF SVO#BSF 1)16OJUa5FTU3VOOFSa5FTU3FTVMUa1BTTFE5FTUT UFTU.FUIPE1BTTFE SFUVSO7BMVFʹ֨ೲ͍ͯ͠Δʂ ʢIBOEMF%FQFOEFODJFTͰΈͨͭʙʙʣ ಡΉͧ
w ฦΓΛϓϩηεશମͰڞ༗͞ΕΔྖҬʹอଘ͢Δ w ޙଓͷґଘςετ͜͜Λࢀরͯ͠ҾΛड͚औΔ ςετ࣮ߦޙɺԿΛ͍ͯ͠Δʁ ಡΉͧ
શʹཧղͨ͠ ಡΉͧ
શମͷ·ͱΊ w ʮલॲཧʯͰ͏·͍͜ͱฒͼସ͑ͯ w ʮ࣮ॲཧʯʢςετέʔεʣͰલͷSFUVSO7BMVFΛ ͏·͍͜ͱςετʹ͍ͯͨ͠ w ͏͚࣌ͩอ࣋͢ΔͰͳ͘ৗʹSFUVSO7BMVFΛ͢ w ಡΜͰΈΕʮͦ͏ͳͬͨΒͦ͏ͳΔΖʯͳॲཧͩͬͨ
w ͜ΕͰεοΩϦΕ·͢ ಡΉͧ
%FQFOETʹ͍ΛͤΔ
͍
͍ॴΉ͍ͣʂ ʢਖ਼ʣ
w ศརͦ͏ͱࢥ͍ͭͭ w ςετجຊʮಠཱʯͷํ͕خ͍͠ w ґଘؔΛ࡞Δͱࣦഊ͕࿈తͳεΩοϓΛੜΜͩΓɺ ҉ͷ࣮ߦॱং੍͕ੜ·ΕͨΓ͢Δ w ͨͩ͠ɺηοτΞοϓίετ͕ߴ͍ૢ࡞ɺঢ়ଶͷมભΛ εςοϓ͝ͱʹݕূ͍ͨ͠໘Ͱ༗ޮ͔ʁ
1)16OJUͷ%FQFOETʹ͍ΛͤΔ
None
None
৭ʑ͋Γͦ͏ʂ
%FQFOET༗ޮ׆༻͍ͯ͠Δਓ ৭ʑڭ͍͑ͯͩ͘͞ʂ
🍊͓ΘΓ🍊 Έͯ͘ΕͯŗžŜƄŪŤƃŝœŖ😘