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
720
アプリのユニットテストについて初歩から考えてみる/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.1k
iOSアプリ開発者から見たKotlin
koishi
2
670
5分でわかるPassword_Autofill_for_Apps
koishi
0
940
Other Decks in Programming
See All in Programming
自動テスト実行結果の目的を整理する / Organizing objectives of automated test results
twada
PRO
10
2.1k
CSRF対策のやり方、そろそろアップデートしませんか / Update your knowledge of CSRF protection
hiro_y
25
15k
OpenAPI を守るのは難しい
ohmori_yusuke
1
140
DDD, necessary but insufficient: physical design principles for microservices
cer
PRO
0
2.2k
設計の知識と技能で駆動するソフトウェア開発
masuda220
PRO
18
11k
Deep Dive 大規模システムアーキテクチャ/開発組織エンジニアリング / Deep Dive Large-Scale System Architecture, Development Organization Engineering
nrslib
15
2.9k
[スクリプト] Swiftの型推論を学ぼう
omochi
0
120
受託開発でGitLab CI を活用していく
xiombatsg
1
130
LPIXEL×CADDi_kaerururu
kaerururu
3
300
WinUI 3デモ - "CommunityToolkit.Mvvm"NuGetパッケージ編
andrewkeepcoding
0
140
Go1.22からの疑似乱数生成器について/go-122-pseudo-random-generator
convto
1
160
クソコード動画『カプセル化 Mk-II』 で考える 上手くカプセル化できない理由 / encapsulation2
minodriven
11
8k
Featured
See All Featured
The Mythical Team-Month
searls
214
42k
The Invisible Customer
myddelton
114
12k
Practical Orchestrator
shlominoach
180
9.7k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
A better future with KSS
kneath
230
16k
Making Projects Easy
brettharned
106
5.4k
Keith and Marios Guide to Fast Websites
keithpitt
407
22k
Rebuilding a faster, lazier Slack
samanthasiow
72
8.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
644
57k
How To Stay Up To Date on Web Technology
chriscoyier
781
250k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
28
46k
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