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
1.1k
ひたすらチームの自慢をします【スクフェス神奈川2024 スポンサーLT】
asumikam
2
480
10年間、派手髪を貫く技術
asumikam
1
380
privateメソッドのテストって書かない方がいいんだっけ?
asumikam
35
14k
ゼロからのスタート: 敢えて「徐々に」始めるスクラム
asumikam
3
910
失敗例から学ぶSOLID原則
asumikam
20
7.4k
commitを積むとは「物語を書く」ことである
asumikam
0
2.5k
温泉紹介します〜小田原からきました〜
asumikam
0
1.4k
スクラム(の一部)を導入してよくなったこと
asumikam
0
660
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
14
8.4k
Building a Scalable Design System with Sketch
lauravandoore
457
32k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
Six Lessons from altMBA
skipperchong
22
3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
8
3.4k
Music & Morning Musume
bryan
41
5.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
41
4.4k
Done Done
chrislema
178
15k
Become a Pro
speakerdeck
PRO
13
4.6k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
9
1.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
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͍ͯ͠Δཧ༝ʯ͕ νʔϜͷڞ௨ೝࣝͱͯ͠ங͚͍ͯͨΒśŖſśŖşŖ‼
Ҿ͖ग़͠Λ૿ͯ͠ ϝνϟɾΧΠςΩɾςετϥΠϑ ΛૹΖ͏ʂ
🍊͓ΘΓ🍊 Έͯ͘ΕͯŗžŜƄŪŤƃŝœŖ😘