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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
asumikam
April 11, 2026
Programming
120
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
ときめかないミーティングはアップデートのシグナル #scrumosaka
asumikam
5
2.1k
「嘘をつくテスト」の失敗例から学ぶ 良いテストコード #frontend_phpcon_do
asumikam
0
1.1k
Harnessing the Power of Mocks and Stubs in PHPUnit / #laravellivejp
asumikam
0
1.1k
委員長たちの「コシ」
asumikam
0
510
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
630
「通るまでRe-run」から卒業!落ちないテストを書く勘所
asumikam
3
1.3k
PHPコミュニティのあるきかた & ちいさく PHPUnitをつくってみる / Tech Challenge Party 2026
asumikam
0
180
ubuntu-latest から ubuntu-slim へ移行しよう!コスト削減うれしい~!
asumikam
0
1.4k
ちいさくPHPUnitをつくり、仕組みと拡張ポイントを探る
asumikam
3
1.3k
Other Decks in Programming
See All in Programming
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
120
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
110
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
170
Intent as Code
shoppingjaws
6
970
Jetpack Compose メカニズム
skydoves
0
140
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
190
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
240
iOSDC2026登壇資料.pdf
riofujimon
0
120
App Intentsのビルドプロセスを支える技術
kntkymt
0
310
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
240
Featured
See All Featured
The Curse of the Amulet
leimatthew05
2
14k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Un-Boring Meetings
codingconduct
0
410
How to build a perfect <img>
jonoalderson
1
6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
A designer walks into a library…
pauljervisheath
211
25k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Prompt Engineering for Job Search
mfonobong
0
450
Game over? The fight for quality and originality in the time of robots
wayneb77
1
270
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
330
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༗ޮ׆༻͍ͯ͠Δਓ ৭ʑڭ͍͑ͯͩ͘͞ʂ
🍊͓ΘΓ🍊 Έͯ͘ΕͯŗžŜƄŪŤƃŝœŖ😘