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
860
アプリのユニットテストについて初歩から考えてみる/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
気がついたら子供が社会人になって 自分と同じモバイルアプリエンジニアになった件 / Parent-Child Engineers
koishi
0
410
Kotlin/Swift 有理数クラスのすすめ
koishi
0
1.3k
iOSアプリ開発者から見たKotlin
koishi
2
710
5分でわかるPassword_Autofill_for_Apps
koishi
0
1.1k
Other Decks in Programming
See All in Programming
TanStack DB ~状態管理の新しい考え方~
bmthd
2
370
ソフトウェアテスト徹底指南書の紹介
goyoki
1
120
Laravel Boost 超入門
fire_arlo
2
170
KessokuでDIでもgoroutineを活用する / Go Connect #6
mazrean
0
130
AI時代に学習する意味はあるのか?
tomoyakamaji
0
100
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
0
140
Claude Codeで挑むOSSコントリビュート
eycjur
0
190
MLH State of the League: 2026 Season
theycallmeswift
0
210
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
630
MCPとデザインシステムに立脚したデザインと実装の融合
yukukotani
1
890
レガシープロジェクトで最大限AIの恩恵を受けられるようClaude Codeを利用する
tk1351
4
1.5k
Namespace and Its Future
tagomoris
6
680
Featured
See All Featured
The Invisible Side of Design
smashingmag
301
51k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
The Language of Interfaces
destraynor
160
25k
Done Done
chrislema
185
16k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
20k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
185
54k
Designing Experiences People Love
moore
142
24k
GraphQLとの向き合い方2022年版
quramy
49
14k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
284
13k
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