Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
読みやすいテストコードへの一歩、適切なAssertionを使う
Search
asumikam
March 09, 2024
4
1.5k
読みやすいテストコードへの一歩、適切なAssertionを使う
PHPerKaigi 2024
https://fortee.jp/phperkaigi-2024/proposal/1be00d06-afa8-4ba9-a49b-9118c782f8e3
asumikam
March 09, 2024
Tweet
Share
More Decks by asumikam
See All by asumikam
PHPカンファレンス小田原2024 オープニング
asumikam
1
910
ひたすらチームの自慢をします【スクフェス神奈川2024 スポンサーLT】
asumikam
2
470
10年間、派手髪を貫く技術
asumikam
1
370
privateメソッドのテストって書かない方がいいんだっけ?
asumikam
35
14k
ゼロからのスタート: 敢えて「徐々に」始めるスクラム
asumikam
3
910
失敗例から学ぶSOLID原則
asumikam
20
7.3k
commitを積むとは「物語を書く」ことである
asumikam
0
2.5k
温泉紹介します〜小田原からきました〜
asumikam
0
1.4k
スクラム(の一部)を導入してよくなったこと
asumikam
0
650
Featured
See All Featured
Teambox: Starting and Learning
jrom
128
8.4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Building Flexible Design Systems
yeseniaperezcruz
320
37k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
How to name files
jennybc
65
93k
Building Effective Engineering Teams - LeadDev
addyosmani
32
1.9k
Thoughts on Productivity
jonyablonski
59
3.9k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
21
1.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
Testing 201, or: Great Expectations
jmmastey
29
6.4k
The Invisible Side of Design
smashingmag
294
49k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
65
14k
Transcript
ಡΈ͍͢ςετίʔυͷҰาɺ దͳ"TTFSUJPOΛ͏ BTVNJLBN
͜Μʹͪʂ w͋͢Έ͔Μ͏·Εͦͩͪ͗͢ͳΈ͘ w 𝕏 !BTVNJLBNখాݪ͔Β͖·ͨ͠
QSJWBUFϝιουͷςετͬͯ ॻ͔ͳ͍ํ͕͍͍Μ͚ͩͬʁ 1)1FS,BJHJ BTVNJLBN ͖ͬ͞ ൃද͖ͯͨ͠ż‼
͖ͬ͞ͷൃද IUUQTTIPVMEJUFTUQSJWBUFNFUIPETDPN
ʮ୯ମςετͷߟ͑ํ͍ํʯ ୯ମςετʹ͓͍ͯɺ֤ςετɾέʔε͕ ͖͢͜ͱͦͷςετʹؔΘΔਓͨͪʹ ςετରͷίʔυ͕ղܾ͠Α͏ͱ͍ͯ͠ ΔޠʢTUPSZʣΛ͑Δ͜ͱͳͷͰ͢ɻ ͖ͬ͞ͷൃද
ετʔϦʔ͕͏·͘ΘΔͱ ༷ ͕ςετέʔεʹΑͬͯ දݱ͞Ε͍ͯΔ͜ͱ͕େࣄͳͷͰͳ͍͔ ͖ͬ͞ͷൃද
ʮ༷ʯΛςετίʔυʹදݱ͢Δ w Βͳ͍ίʔυΛಡΉ࣌ʹςετίʔυ͕͋Δͱ ʮͳʹΛΧόʔ͍ͯ͠Δ͔ʯ͕͙͢ʹΘ͔ͬͯྑ͍ w ͭ·ΓɺʮͳʹΛΧόʔ͍ͯ͠Δ͔ʯΛ త֬ʹࣔ͢ΞαʔγϣϯΛॻ͘͜ͱ͕େࣄ
දݱํ๏ʹʮ͍ۙʯͱʮԕ͍ʯ͕͋Δ w ۙ͗͢ΔͱzِཅੑzͬΆ͘ͳΔ͠ ԕ͗͢ΔͱzِӄੑzͬΆ͘ͳΔ🧐 w ৄ͘͠ˠ
༷Λදݱͨ͠ྑ͍ڑײͷ ςετίʔυΛॻͨ͘Ίʹʜ ͲΜͳ"TTFSUJPO͕͋Δ͔Λ ͓ͬͯ͘ͷ͕େࣄ🙌
༷Λදݱͨ͠ྑ͍ڑײͷ ςετίʔυΛॻͨ͘Ίʹʜ ͲΜͳ"TTFSUJPO͕͋Δ͔Λ ͓ͬͯ͘ͷ͕େࣄ🙌
͍ͬͯ͘ʂ ͋͢ΈΊ ͜͜·ͰͰ
͓͠ͳ͕͖ ʮదʹʯۙ͘͢Δ ʮͪΐͬͱԕΊʹʯྻΛΈΔ BTTFSU&RVBMT
ʮదʹʯۙ͘͢Δ
ʮదʹʯۙ͘͢Δ w ʮͦΕBTTFSU4BNFΑΓదͳͷ͋Δ͔ʂ🧐ʯ w ࢥߟͷखΛݮΒͯ͠ʮదʹʯ͍ۙͯ͘͘͠
ʮBTTFSU4BNFʯΛ͏ͱʜ Կ͔͕ʮಉ͡ʯͩͳʙ ͱԿ͔͕ಉͩ͡ͳʙ ͳʹ͔ΛDPVOUͯ͠Δͧ BDUVBM͔ʂ
ʮBTTFSU$PVOUʯΛ͏ͱ‼ Կ͔͕ʮಉ͡ʯͩͳʙ ͱԿ͔͕ಉͩ͡ͳʙ BDUVBM͔ʂ
ʮࢥߟͷखʯ͕ݮΔײ͡ ՄಡੑŗşƄŗşƄ
ʮࢥߟͷखʯΛݮΒͧ͢ʂू
ʮࢥߟͷखʯΛݮΒͧ͢ʂू
ʮࢥߟͷखʯΛݮΒͧ͢ʂू BTTFSU4BNFΑΓ Ҿ͕ݮͬͨΓ͢Δ Ϩϐʔ😘
ʮࢥߟͷखʯΛݮΒ͢ڧྗͳڠྗऀ w 3FDUPS͕ஔ͖͑ͯ͘ΕͨΓ w IUUQTHJUIVCDPNSFDUPSQIQSFDUPSQIQVOJUCMPCNBJOSVMFT $PEF2VBMJUZ3FDUPS.FUIPE$BMM"TTFSU1SPQFSUZ&YJTUT3FDUPSQIQ w 1)14UPSN͕ࢦఠͯ͘͠ΕͨΓ w IUUQTXXXKFUCSBJOTDPNIFMQQIQTUPSNQIQBTTFSUJPODBOCF
SFQMBDFEXJUIBTTFSUFNQUZBTTFSUOPUFNQUZIUNM w 1)14UBO͕ࢦఠͯ͘͠ΕͨΓ w IUUQTHJUIVCDPNQIQTUBOQIQTUBOQIQVOJU
ʢ༨ஊʣ NFTTBHF͔͍ͯ·͔͢ʁʁ͔͖·͠ΐ͏ʂʂ खͬऔΓૣ͘ʮਖ਼͘͠ͳ͍ʯΛ ͑ΒΕͯՄಡੑŗşƄŗşƄɻ ͋͢ΈΊ ͜͜·ͰͰ
ʮͪΐͬͱԕΊʹʯ ྻΛΈΔ
BTTFSU4BNFͰશ෦ݟΔͱ ͪΐͬͱۙ͗͢Δ͕࣌͋Δ
BTTFSU4BNFͰશ෦ݟΔͱ ͪΐͬͱۙ͗͢Δ͕࣌͋Δ શ෦Λ͔֬Ί͍ͨ Θ͚͡Όͳ͍ Μ͚ͩͲͳ͊
BTTFSU4BNFͰશ෦ݟΔͱ ͪΐͬͱۙ͗͢Δ͕࣌͋Δ શ෦Λ͔֬Ί͍ͨ Θ͚͡Όͳ͍ Μ͚ͩͲͳ͊ BTTFSU4BNF͏ͱ ͔֬Ί͍ͨ͜ͱ͕ ϘϠ͚Δͳ͊
BTTFSU4BNFͰશ෦ݟΔͱ ͪΐͬͱۙ͗͢Δ͕࣌͋Δ શ෦Λ͔֬Ί͍ͨ Θ͚͡Όͳ͍ Μ͚ͩͲͳ͊ BTTFSU4BNF͏ͱ ͔֬Ί͍ͨ͜ͱ͕ ϘϠ͚Δͳ͊ େ͕খΛ ݉Ͷͳ͍
ʮͪΐͬͱԕΊʯ͔ΒΈͯ ͪΐ͏Ͳ͍͍࣌͋Δ
Έ͍ͨͱ͜Ζ͚ͩɺΈΔʂ
BTTFSU"SSBZ)BT,FZ ʮͪΐͬͱԕΊʯ͔ΒྻΛΈΔू *UFSBCMFʢྻʣʹࢦఆͷΩʔ͕͋Δ͔
BTTFSU$POUBJOT ʮͪΐͬͱԕΊʯ͔ΒྻΛΈΔू *UFSBCMFʢྻʣͷதʹࢦఆͷཁૉ͕͋Δ͔
BTTFSU$POUBJOT0OMZ ʮͪΐͬͱԕΊʯ͔ΒྻΛΈΔू *UFSBCMFʢྻʣͷཁૉ͕ࢦఆͷܕͷΈ͔
BTTFSU$POUBJOT 0OMZ*OTUBODF0G ʮͪΐͬͱԕΊʯ͔ΒྻΛΈΔू *UFSBCMFʢྻʣͷཁૉ͕ ͯ͢ࢦఆͷΦϒδΣΫτ͔
ਖ਼͍͠ڑײΛߟ͑ͯ ΞαʔγϣϯΛબ΅͏ ͋͢ΈΊ ͜͜·ͰͰ
BTTFSU&RVBMT
Α͘ฉ͖·͢ΑͶɺίϨɻ
Α͘ฉ͖·͢ΑͶɺίϨɻ
Α͘ฉ͖·͢ΑͶɺίϨɻ ཁʮΏΔ͍ൺֱʯͱʮ͖͍ͭൺֱʯ
͏Ұาઌ
ʮΏΔ͍ʯํ͕خ͍࣌ͬͯ͠ͳ͍Ͱ͔͢ʁ
ʮΏΔ͍ʯํ͕خ͍࣌ͬͯ͠ͳ͍Ͱ͔͢ʁ wΦϒδΣΫτ wྻ
BTTFSU&RVBMTͱΦϒδΣΫτ
BTTFSU&RVBMTͱΦϒδΣΫτ ˡམͪΔ
BTTFSU&RVBMTͱΦϒδΣΫτ ˡམͪΔ ˡམͪͳ͍
BTTFSU&RVBMTͱΦϒδΣΫτ wΦϒδΣΫτಉ࢜ͷൺֱ ͩͱBTTFSU&RVBMTͷํ͕ خ͍͠ w͜Μͳײ͡ͷʮخ͍͠ʯ ৭ʑ୳͍ͬͯ͘Ρʂʂʂ
BTTFSU&RVBMTͱ࿈ྻ
BTTFSU&RVBMTͱ࿈ྻ ˡམͪΔ
BTTFSU&RVBMTͱ࿈ྻ ˡམͪΔ ˡམͪͳ͍
BTTFSU&RVBMTͱ࿈ྻ
BTTFSU&RVBMTͱ࿈ྻ w ࿈ྻͷॱ൪ w Ωʔͷॱ൪Λؾʹͤͣʹ Ξαʔγϣϯ͍ͨ࣌͠ʹ͑Δ w ʮॱ൪ʹڵຯͳ͍Ͱ͢Αʯ
ͬͯ࣌ʹબ͢Δ
ఴࣈྻͷ߹
ఴࣈྻͷ߹ ˡམͪΔ
ఴࣈྻͷ߹ ˡམͪΔ ˡམͪΔ
ఴࣈྻͷ߹ ŪƄŖţſ
ఴࣈྻͷ߹ 🤩🤩🤩
ఴࣈྻͷ߹ BTTFSU&RVBMT $BOPOJDBMJ[JOH ྻͷཁૉ͕ಉ͡Ͱ͋Δ͔Ͳ͏͔Λݕূɺ ॱংΛແࢹͯ͠ൺֱ
ఴࣈྻͷ߹ BTTFSU&RVBMT $BOPOJDBMJ[JOH ྻͷཁૉ͕ಉ͡Ͱ͋Δ͔Ͳ͏͔Λݕূɺ ॱংΛແࢹͯ͠ൺֱ நग़ॲཧͰ ࣃൈ͚ʹͳͬͨྻ ͱ͔ʹศར
"QQFOEJY 1)16OJU͕͘Δ🚀
"QQFOEJY1)16OJU͕͘Δ🚀 w 5FTU%PVCMFT w 1)16OJUͰTPGUEFQSFDBUFEʹͳͬͨςετελϒͱϞοΫΦϒδΣΫτ ؔ࿈ͷϝιου͕IBSEEFQSFDBUFEʹʢ1)16OJUͰআʣ w .FUBEBUB w EPDίϝϯτͰॻ͍͍ͯͨςετΞ
ϊςʔγϣϯ͕EFQSFDBUFEʹ ʢ1)16OJUͰআʣ w "UUSJCVUFͰॻ͜͏ͳʂʂʂ w NPSFIUUQTQIQVOJUEFBOOPVODFNFOUTQIQVOJUIUNM
śŭŭŸ1)16OJU֓ʢ͞Μʣ ίϨͱ߹Θͤͯ 1)16OJUͷ DIBOHFMPHΛݟΔͱ ྲྀΕ͕Θ͔ͬͯ ໘ന͍👏
·ͱΊ·͢ʂ
wʮԕۙײ͕ŘŘײ͡ʯͷΞαʔγϣϯΛॻ͘ͱ ಡΈ͍͢ςετίʔυʹͳΔϤ wͬͯ͐ʙͷ͔Β৭ʑհ͖ͯ͠·ͨ͠
ʮదʹʯۙ͘͢Δ
wBTTFSU$PVOU wBTTFSU5SVF BTTFSU'BMTF wBTTFSU/VMM wBTTFSU&NQUZ ʮదʹʯۙ͘͢Δ
ʮԕۙײʯΛେࣄʹ͢Δ
wBTTFSU&RVBMTΛ͏બ wʮԕۙײʯͷදݱํ๏ ʮԕۙײʯΛେࣄʹ͢Δ ԕ͍ ͍ۙ BTTFSU&RVBMT $BOPOJDBMJ[JOH BTTFSU&RVBMT BTTFSU$POUBJOT
ܥ ˞Πϝʔδਤ
wBTTFSU&RVBMTΛ͏બ wʮԕۙײʯͷදݱํ๏ ʮԕۙײʯΛେࣄʹ͢Δ ԕ͍ ͍ۙ BTTFSU&RVBMT $BOPOJDBMJ[JOH BTTFSU&RVBMT BTTFSU$POUBJOT
ܥ ˞Πϝʔδਤ
wʮ*.0ʯͰ͢ʂ wͲͷબΛ͢Δ͔Έ͔ͳ🥺 wʮͦΕΛzબz͍ͯ͠Δཧ༝ʯ͕ νʔϜͷڞ௨ೝࣝͱͯ͠ங͚͍ͯͨΒśŖſśŖşŖ‼
Ҿ͖ग़͠Λ૿ͯ͠ ϝνϟɾΧΠςΩɾςετϥΠϑ ΛૹΖ͏ʂ
🍊͓ΘΓ🍊 Έͯ͘ΕͯŗžŜƄŪŤƃŝœŖ😘