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
フロントエンドの単体テスト
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
みき
August 30, 2024
Programming
0
300
フロントエンドの単体テスト
みき
August 30, 2024
Tweet
Share
More Decks by みき
See All by みき
AIの特性から考える よりよりAIの活用法
takecantik
0
11
Other Decks in Programming
See All in Programming
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
170
dchart: charts from deck markup
ajstarks
3
1k
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
310
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
720
今から始めるClaude Code超入門
448jp
8
8.9k
Raku Raku Notion 20260128
hareyakayuruyaka
0
340
SourceGeneratorのススメ
htkym
0
200
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
130
AgentCoreとHuman in the Loop
har1101
5
240
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
620
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
590
CSC307 Lecture 05
javiergs
PRO
0
500
Featured
See All Featured
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
69
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
55
How to train your dragon (web standard)
notwaldorf
97
6.5k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
450
Information Architects: The Missing Link in Design Systems
soysaucechin
0
780
Game over? The fight for quality and originality in the time of robots
wayneb77
1
120
Accessibility Awareness
sabderemane
0
53
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Technical Leadership for Architectural Decision Making
baasie
2
250
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
250
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Transcript
フロントエンドの単体テスト
2 ࣗݾհ Introduction ࡾ ඩྤ (Takeru Miki) גࣜձࣾϋοΫπ ςοΫϦʔυ !UBLF@DBOUJL
ɾྸ: 24ࡀ (2000ੜ) ɾॴଐ: גࣜձࣾϋοΫπ (৽ଔ2) ɾۀ: όοΫΤϯυ(PHPer)ɺΠϯϑϥ(AWS) ɾझຯ: ࠷ۙΫϨϨͱΪλʔʹϋϚͬͯΔ🎸
フロントエンドの単体テスト ͡Ίʹ ୯ମςετͱ ͳͥ୯ମςετΛߦ͏ͷ͔ ϑϩϯτΤϯυͷ୯ମςετ ͍͞͝ʹ DPOUFOUT ͔͜͜Βޙ10͔͔Γ·͢()
フロントエンドの単体テスト DPOUFOUT ͡Ίʹ ୯ମςετͱ ͳͥ୯ମςετΛߦ͏ͷ͔ ϑϩϯτΤϯυͷ୯ମςετ ͍͞͝ʹ
͡Ίʹ ࠓճ͢͜ͱ ɾ୯ମςετͬͯͳΜͳͷʁ ɾͦͦͳΜͰ୯ମςετΛߦ͏ͷʁ ɾϑϩϯτΤϯυʹ͓͚Δ୯ମςετͬͯʁ
͡Ίʹ ͜Μͳਓʹ͚ͯ ɾςετͬͯԿ͕͍͍ͷʁ ɾϑϩϯτΤϯυͷςετͬͯԿॻ͘ͷʁ ɾςετॻ͍ͯΔ͚Ͳ͜ΕͰ͍͍ͷʁ
͡Ίʹ ओͳࢀߟจݙ
フロントエンドの単体テスト DPOUFOUT ͡Ίʹ ୯ମςετͱ ͳͥ୯ମςετΛߦ͏ͷ͔ ϑϩϯτΤϯυͷ୯ମςετ ͍͞͝ʹ ͜͜Ͱ2ͬͯΔͱௐࢠ͍͍Αʂ
୯ମςετͱ ͓͓·͔ͳςετͷछྨ ɾ୯ମςετ 6OJUςετ ɾ౷߹ςετ *OUFHSBUJPOςετ ɾ&&ςετ
୯ମςετͱ ͓͓·͔ͳςετͷछྨ ɾ୯ମςετ 6OJUςετ ɹɾιϑτΣΞͷݸʑͷখ͞ͳ෦Λςετ͢Δ͜ͱ ɹɾఆΊΒΕͨೖྗ͔Βظ͞Εͨग़ྗΛಘΒΕΔ͔Λ֬ೝ ɾ౷߹ςετ *OUFHSBUJPOςετ
ɹɾෳͷϞδϡʔϧΛΈ߹Θͤͨςετ ɾ&&ςετ ɹɾϞοΫΛߦΘͣɺόοΫΤϯυɾ%#Λ߹Θͤͨςετ
୯ମςετͱ ͓͓·͔ͳςετͷछྨ ɾ୯ମςετ 6OJUςετ ɹɾιϑτΣΞͷݸʑͷখ͞ͳ෦Λςετ͢Δ͜ͱ ɹɾఆΊΒΕͨೖྗ͔Βظ͞Εͨग़ྗΛಘΒΕΔ͔Λ֬ೝ ɾ౷߹ςετ *OUFHSBUJPOςετ
ɹɾෳͷϞδϡʔϧΛΈ߹Θͤͨςετ ɾ&&ςετ ɹɾϞοΫΛߦΘͣɺόοΫΤϯυɾ%#Λ߹Θͤͨςετ
୯ମςετͱ ֤ςετͷಛ ɾ୯ମςετ ɾ౷߹ςετ ɾ&&ςετ ίετ ৴པ
খ ߴ
୯ମςετͱ ςετϐϥϛου ԼͷςετΛଟ͘ॻ͘͜ͱͰɺ ΑΓ҆ఆͨ͠අ༻ରޮՌͷߴ͍ςετ
୯ମςετͱ ·ͱΊ ୯ମςετͱ ɾιϑτΣΞͷݸʑͷখ͞ͳ෦Λςετ͢Δ͜ͱ ɾఆΊΒΕͨೖྗ͔Βظ͞Εͨग़ྗΛಘΒΕΔ͔Λ֬ೝ ɾίετ͍͔Β࢝Ί͍͢
フロントエンドの単体テスト DPOUFOUT ͡Ίʹ ୯ମςετͱ ͳͥ୯ମςετΛߦ͏ͷ͔ ϑϩϯτΤϯυͷ୯ମςετ ͍͞͝ʹ ͔͜͜Β7͔͔Δ!
ͳͥ୯ମςετΛߦ͏ͷ͔ ͳΜͰ୯ମςετ͢Δͷʁ ɾΑΓ༏ΕͨઃܭʹͳΔ͔Β ɾόά͕গͳ͘ͳΔ͔Β ɾςετ͕༷ॻ υΩϡϝϯτ ʹͳΔ͔Β
ͳΜͰ୯ମςετ͢Δͷʁ ɾΑΓ༏ΕͨઃܭʹͳΔ͔Β ɾόά͕গͳ͘ͳΔ͔Β ɾςετ͕༷ॻ υΩϡϝϯτ ʹͳΔ͔Β ୯ମςετΛߦͬͨ݁Ռʹա͗ͳ͍ ͳͥ୯ମςετΛߦ͏ͷ͔
ͳΜͰ୯ମςετ͢Δͷʁ ιϑτΣΞ։ൃϓϩδΣΫτͷ Λ࣋ଓՄೳ ͳͥ୯ମςετΛߦ͏ͷ͔
ϓϩδΣΫτͷ අ࣌ؒ͢ ςετͳ͠ ςετ͋Γ ͳͥ୯ମςετΛߦ͏ͷ͔
ϓϩδΣΫτͷ අ࣌ؒ͢ ςετͳ͠ ςετ͋Γ ࣭ͷߴ͍ςετΛ͢Δඞཁ͕͋Δ ͳͥ୯ମςετΛߦ͏ͷ͔
࣭ͷߴ͍ςετͱ ࠷খݶͷอकίετͰɺ ࠷େݶͷՁΛੜΈग़͢͜ͱ͕Ͱ͖Δςετ ͳͥ୯ମςετΛߦ͏ͷ͔
࣭ͷߴ͍ςετͱ ͳͥ୯ମςετΛߦ͏ͷ͔ ɾॻ͖ա͗ͯμϝ ɾҙຯͷແ͍ςετʹͳͬͯͳ͍͔
࣭ͷߴ͍ςετͱ ɾυϝΠϯϩδοΫͳͲͷΑΓॏཁͳ෦ ɾෳࡶͳϩδοΫΛ࣋ͭ෦ ͳͥ୯ମςετΛߦ͏ͷ͔
·ͱΊ ͳͥ୯ମςετΛߦ͏ͷ͔ ୯ମςετ ɾιϑτΣΞ։ൃϓϩδΣΫτͷΛ࣋ଓՄೳʹ͢ΔͨΊ ɾ࣭ͷߴ͍ςετΛ͢Δඞཁ͕͋Δ ɾ࠷খݶͷอकίετͰ࠷େݶͷՁΛੜΈग़͢
フロントエンドの単体テスト DPOUFOUT ͡Ίʹ ୯ମςετͱ ͳͥ୯ମςετΛߦ͏ͷ͔ ϑϩϯτΤϯυͷ୯ମςετ ͍͞͝ʹ Γ4Ҏ্ͳ͔ͬͨΒٸ͗Ͱʂ
ϑϩϯτΤϯυͷ୯ମςετ ϑϩϯτΤϯυʹ͓͚Δ୯ମςετ 🤔
ϑϩϯτΤϯυͷ୯ମςετൣғ ɾΦϒδΣΫτؔ ɾΧελϜ)PPL ɾ୯ମίϯϙʔωϯτ ϑϩϯτΤϯυͷ୯ମςετ
ϑϩϯτΤϯυʹ͓͚Δ࣭ͷߴ͍୯ମςετ 🤔 ϑϩϯτΤϯυͷ୯ମςετ
ςετϐϥϛου ԼͷςετΛଟ͘ॻ͘͜ͱͰɺ ΑΓ҆ఆͨ͠අ༻ରޮՌͷߴ͍ςετ ϑϩϯτΤϯυͷ୯ମςετ
ςεςΟϯάτϩϑΟʔ ίʔυͷΧόϨοδͰͳ͘ɺ ϢʔεέʔεͷΧόϨοδΛॏࢹ ϑϩϯτΤϯυͷ୯ମςετ
ɾυϝΠϯϩδοΫͳͲͷΑΓॏཁͳ෦ ɾෳࡶͳϩδοΫΛ࣋ͭ෦ ϑϩϯτΤϯυʹ͓͚Δ࣭ͷߴ͍୯ମςετ ϑϩϯτΤϯυͷ୯ମςετ
ɾυϝΠϯϩδοΫͳͲͷΑΓॏཁͳ෦ ɾෳࡶͳϩδοΫΛ࣋ͭ෦ ϑϩϯτΤϯυʹ͓͚Δ࣭ͷߴ͍୯ମςετ ϑϩϯτΤϯυͷ୯ମςετ
ɾίʔυͷذΤοδέʔε͕ଟ͍෦ ɾσʔλΛܗ͢ΔΞϧΰϦζϜͱ͔ ɾঢ়ଶཧͷϩδοΫͱ͔ ɾ"1*௨৴ͷ݁ՌͰΤϥʔϋϯυϦϯά͢Δͷͱ͔ ɾόϦσʔγϣϯͱ͔ ෳࡶͳϩδοΫͬͯԿʁ ϑϩϯτΤϯυͷ୯ମςετ
ɾιʔτʹؔ͢Δςετ ɾྻΛঢॱʹιʔτͰ͖Δ͜ͱ ɾۭͷ߹ͦͷ··ฦ٫Ͱ͖Δ͜ͱ ɾιʔτ࣌ʹݩͷྻΛมߋͰ͖ͳ͍͜ͱ ࣮ࡍͷςετέʔεྫ ϑϩϯτΤϯυͷ୯ମςετ
ɾύεϫʔυͷόϦσʔγϣϯʹؔ͢Δςετ ɾڧྗͳύεϫʔυΛ༗ޮఆͰ͖Δ͜ͱ ɾ͍ύεϫʔυΛແޮఆͰ͖Δ͜ͱ ɾࣈؚ͕·Ε͍ͯͳ͍ύεϫʔυΛແޮఆͰ͖Δ͜ͱ ࣮ࡍͷςετέʔεྫ ϑϩϯτΤϯυͷ୯ମςετ
フロントエンドの単体テスト DPOUFOUT ͡Ίʹ ୯ମςετͱ ͳͥ୯ମςετΛߦ͏ͷ͔ ϑϩϯτΤϯυͷ୯ମςετ ͍͞͝ʹ
͍͞͝ʹ ɾ୯ମςετͬͯͳΜͳͷʁ ɾςετͷதͰҰͭͷ୯ҐΛςετ͢Δখ͍͞ςετ ɾͦͦͳΜͰ୯ମςετΛߦ͏ͷʁ ɾϓϩδΣΫτͷΛ࣋ଓՄೳͳͷʹ͢ΔͨΊ ɾϑϩϯτΤϯυʹ͓͚Δ୯ମςετͬͯʁ ɾෳࡶͳϩδοΫΛςετ͢Δͷʹ࠷ద શମͷ·ͱΊ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ ͍͞͝ʹ