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
アプリのユニットテストについて初歩から考えてみる/ABC UnitTest
Search
Koichiro Oishi
October 03, 2017
Programming
3
810
アプリのユニットテストについて初歩から考えてみる/ABC UnitTest
2017/10/02 俺コン Vol.1 / Day.1
Koichiro Oishi
October 03, 2017
Tweet
Share
More Decks by Koichiro Oishi
See All by Koichiro Oishi
Kotlin/Swift 有理数クラスのすすめ
koishi
0
1.2k
iOSアプリ開発者から見たKotlin
koishi
2
690
5分でわかるPassword_Autofill_for_Apps
koishi
0
1k
Other Decks in Programming
See All in Programming
GAEログのコスト削減
mot_techtalk
0
110
個人アプリを2年ぶりにアプデしたから褒めて / I just updated my personal app, praise me!
lovee
0
340
[JAWS-UG横浜 #80] うわっ…今年のServerless アップデート、少なすぎ…?
maroon1st
1
170
Amazon ECS とマイクロサービスから考えるシステム構成
hiyanger
2
490
DevinとCursorから学ぶAIエージェントメモリーの設計とMoatの考え方
itarutomy
1
640
動作確認やテストで漏れがちな観点3選
starfish719
6
1k
Ruby on cygwin 2025-02
fd0
0
140
なぜイベント駆動が必要なのか - CQRS/ESで解く複雑系システムの課題 -
j5ik2o
7
2.5k
パスキーのすべて ── 導入・UX設計・実装の紹介 / 20250213 パスキー開発者の集い
kuralab
3
670
[JAWS-UG横浜 #79] re:Invent 2024 の DB アップデートは Multi-Region!
maroon1st
1
140
Unity Android XR入門
sakutama_11
0
140
Kubernetes History Inspector(KHI)を触ってみた
bells17
0
200
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Practical Orchestrator
shlominoach
186
10k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Designing Experiences People Love
moore
139
23k
Building Your Own Lightsaber
phodgson
104
6.2k
GitHub's CSS Performance
jonrohan
1030
460k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
20
2.4k
RailsConf 2023
tenderlove
29
1k
Transcript
ΞϓϦͷϢχοτςετʹͭ ͍ͯॳา͔Βߟ͑ͯΈΔ 2017/10/02 Զίϯ Vol.1 / Day.1 େੴ ߂Ұɹ(@mego_, Koishi)
1 Koichiro Oishi, 2017/10/02
ࣗݾհ • େੴ ߂Ұ • iOSΞϓϦΤϯδχΞ • גࣜձࣾϚφϘ →9݄ʹSIer͔Βస৬͠·͠ ͨʂ
2 Koichiro Oishi, 2017/10/02
ຊͷ͓ • ΞϓϦͷϢχοτςετΛͳΜͱͳ͘ॻ͍ͯΔ • Xcodeඪ४ͷXCTestΛ༻ • ओʹϞσϧ෦ͷΈ • ௨৴ॲཧ։ൃαʔόͱ௨৴͢Δςετ •
UIςετϊʔλον 3 Koichiro Oishi, 2017/10/02
4 Koichiro Oishi, 2017/10/02
৭ʑؾʹͳΔ͜ͱ͋ͬͯɺ ৄ͍͠ਓʹฉ͍ͯΈ͍ͨ 5 Koichiro Oishi, 2017/10/02
ͱ͍͏͜ͱͰɺςετʹৄ͠ ͍ਓʹฉ͍ͯߟ͑ͯΈ·ͨ͠ (લ৬ͷݱͰͷ) 6 Koichiro Oishi, 2017/10/02
ςετʹৄ͍͠ํͱ͍͑͋ ͷํͰ͢Ͷʂ 7 Koichiro Oishi, 2017/10/02
͜Μͳ͜ͱΛฉ͖·ͨ͠ • Modelͷςετ͜Μͳ෩ʹॻ͍ͯΔ͚Ͳʁ • ௨৴෦։ൃαʔόͱ௨৴ͯ͠Δ͚ͲMockΛ ͬͨํ͕ྑ͍ʁ • ViewͷςετͲ͏͢Εྑ͍ʁ • ΧόϨοδʹ͍ͭͯ
8 Koichiro Oishi, 2017/10/02
Modelͷςετ͍·͜Μͳ෩ ʹॻ͍ͯ·͚͢ͲͲ͏Ͱ͢ ͔ʁ 9 Koichiro Oishi, 2017/10/02
͜Μͳ෩ʹॻ͍͍ͯ·ͨ͠ɻ 10 Koichiro Oishi, 2017/10/02
→ϝιου໊ྑ͍ ঢ়ଶͱظ͞ΕΔ݁Ռ͕ϝιου໊ʹॻ͔Ε͍ͯΔ 11 Koichiro Oishi, 2017/10/02
→ಉ͡ΫϥεͷςετͰά ϧʔϓԽͨ͠ΒΑ͍ • JUnitͰ͍͏Enclosed • RspecͰ͍͏describe →XCTestͩͱͰ͖ͳ͍ →QuickͩͱͰ͖ΔͬΆ͍? 12 Koichiro
Oishi, 2017/10/02
→ΫϥεͱςετΫϥε1 ରଟͰΑ͍ 13 Koichiro Oishi, 2017/10/02
௨৴෦։ൃαʔόͱ௨৴ ͯ͠Δ͚ͲMockΛͬͨํ ͕ྑ͍ʁ 14 Koichiro Oishi, 2017/10/02
→ඞͣ͠Θͳͯ͘ྑ͍ • MockΛ͏ͱɺMock͕ਖ਼͍༷͠Ͱ͋Δ͜ͱͷ ୲อ͕ඞཁʹͳΔ • ςετʹ͑Δ։ൃαʔό͕͋ΕͦͪΒͷํ͕ ίετ • ڥతʹ௨৴Ͱ͖ͳ͍ɺ͕͔͔࣌ؒΔͱ͍ͬͨ ߹MockΛݕ౼͢Δ
15 Koichiro Oishi, 2017/10/02
→Ͱ࣮ࡍʹ௨৴͢Δςετͨ·ʹ ࣦഊ͢Δ͜ͱ͕͋Δ • ඞͣޭ͢Δςετͱͨ·ʹࣦഊͯ͠͠·͏ςε τΛྨ →XcodeͳΒςετίʔυͷλʔήοτΛผʹ͢ ΔͳͲ • ྫ͑CIͰࣗಈςετ͢ΔͳΒࣦഊ͢Δςετ 3ճ࿈ଓͨ͠Βࣦഊͱఆ͢ΔͳͲ
16 Koichiro Oishi, 2017/10/02
ViewͷςετΒͳ͍ͱͩ ΊͰ͔͢ʁ 17 Koichiro Oishi, 2017/10/02
→ViewͷςετΑΓE2Eς ετΛͬͨํ͕ྑ͍ • ViewσβΠϯঢ়ଶ͕มΘΔ͔ΒɺView୯ମͷ ςετͱ͍͏ΑΓεϞʔΫςετE2Eςετ Λͬͨํ͕ྑ͍ → AppiumͳͲ • E2EςετΛߦ͏͜ͱͰਖ਼ৗܥͷςετࣗಈԽ
Ͱ͖Δ → ྫ֎ܥͷෳࡶͳςετਓ͕ؒΔඞཁ͕͋Δ 18 Koichiro Oishi, 2017/10/02
ΧόϨοδʹ͍ͭͯ 19 Koichiro Oishi, 2017/10/02
→ࢦ͖͢ΧόϨοδ • ·ͣϞσϧΛରʹ80ʙ90%Λࢦͤྑ͍ →100%Λࢦ͢ͷͭΒΈ͕૿͢߹ͷ͋Δ ͷͰඞͣ͠ࢦ͞ͳͯ͘Α͍ 20 Koichiro Oishi, 2017/10/02
→ࠓޙΧόϨοδΛҙࣝ͢ Δ͜ͱ • ΧόϨοδ͕ҡ࣋͞Ε͍ͯΔ → ಉ͡ൺͰςετ͕ॻ͔Ε͍ͯΔ ! • ΧόϨοδ͕Լ͕͍ͬͯΔ →
ςετ͕ॻ͔Ε͍ͯͳ͍ " 21 Koichiro Oishi, 2017/10/02
XCTestͳΒXcode্Ͱ֬ೝͰ ͖·͢Ͷʂ 22 Koichiro Oishi, 2017/10/02
͝੩ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ 23 Koichiro Oishi, 2017/10/02