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
プロジェクトの1ファイルに単体テストを書いてみた!〜本当にこれで合ってるの…??🤔〜
Search
takattata
December 05, 2017
Programming
0
2.3k
プロジェクトの1ファイルに単体テストを書いてみた!〜本当にこれで合ってるの…??🤔〜
iOS Test Night #6にて発表した時の資料です!
takattata
December 05, 2017
Tweet
Share
More Decks by takattata
See All by takattata
What's DDD?
takattata
5
900
Kotlinのコントリビュートに挑戦してみたよ!
takattata
3
300
導入画面を実装したよ
takattata
1
2k
AndroidXに移行しようと`してみた`!
takattata
2
720
Flutterテストことはじめ
takattata
1
800
Flutter
takattata
3
1.6k
ディープリンクを実装した
takattata
1
1.8k
introduce unit testing
takattata
1
580
xUnit Test Patterns の序章
takattata
1
360
Other Decks in Programming
See All in Programming
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
2
18k
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
650
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
270
ニーリーにおけるプロダクトエンジニア
nealle
0
840
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
2
13k
Team operations that are not burdened by SRE
kazatohiei
1
310
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
910
Hack Claude Code with Claude Code
choplin
4
2.1k
「テストは愚直&&網羅的に書くほどよい」という誤解 / Test Smarter, Not Harder
munetoshi
0
170
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
2
840
MDN Web Docs に日本語翻訳でコントリビュートしたくなる
ohmori_yusuke
1
120
脱Riverpod?fqueryで考える、TanStack Queryライクなアーキテクチャの可能性
ostk0069
0
150
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
43
7.6k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
How to Ace a Technical Interview
jacobian
278
23k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
It's Worth the Effort
3n
185
28k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
54k
Navigating Team Friction
lara
187
15k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Transcript
1 2017.12.05 @iOS Test Night Մೳੑʹ ϓϩδΣΫτͷ1ϑΝΠϧʹ୯ମςετΛॻ͍ͯΈͨʂ ʙຊʹ͜ΕͰ߹ͬͯΔͷ…??ʙ @takattata
2 To do Γ͍ͨ͜ͱ
3 ままのて Γ͍ͨ͜ͱ
4 ままのて Γ͍ͨ͜ͱ ɾΫϦʔϯΞʔΩςΫνϟ ɾ4XJGU ɾ9DPEF ɾ$PDPB1PET ɾ#JUSJTF ˠ9$5FTUͰ͜ͷϓϩδΣΫτͷςετΛॻ͖͍ͨ
5 ʮ·ͣ%BUB4UPSFͷςετΛॻ͍ͯΈΑ͏ʯ ͱ͍͏༁Ͱ'BWPSJUF%BUB4UPSFΫϥεΛબ ˣ͜Μͳײ͡ͷಈ͖ Γ͍ͨ͜ͱ Ϋϥεͷؔ ɾFYJTUT ࠨ͕࣮ ɾHFU"MM
ɾDSFBUF ɾEFMFUF
6 ͓खݩʹTwitterͷ४උΛ͓ئ͍͠·͢!! ࠓճͲ͏ઃఆ͠ɺॻ͍͔ͨΛ͖ͤͯ͞·͕͢ɺ ʮνͦ͏ͯ͠ΔΑʔʯʮ͜͏͡Όͳ͍ʁʯͳͲɺ ੋඇ!ͲΜͲΜ!ᄁ͍͍ͯͩ͘͞!!(ޙ͍͢ΔͷͰ!) #ios_test_night ͚ͯੋඇ!͓ئ͍͠·͢!! ɹ͓ئ͍!!ɹ
7 ͷྲྀΕ ɾॻ͍ͨςετͷߏ ɾ3Y4XJGUͷςετͷॻ͖ํ ɾ$PDPB1PETͷઃఆ ɾϓϩδΣΫτͷઃఆ ɾ#JUSJTFͷઃఆ
8 Structure ॻ͍ͨςετͷߏ ࣭
9 ςετͷߏ ॻ͍ͨςετͷߏ 'BWPSJUF%BUB4UPSF5FTUTΫϥε 'BWPSJUF%BUB4UPSFΫϥεΛϝϯόมʹ࣋ͪɺඇಉظςετ͢Δ ςετରɿ'BWPSJUF%BUB4UPSFΫϥε 'JSFCBTFʹΞΫηεͯ͠σʔλͷΓऔΓΛ͢Δ ˠ͜ͷ෦ΛϞοΫʹࠩ͠ସ͑Δ 'BWPSJUF%BUB4UPSF.PDLΫϥε 'JSFCBTFͷΘΓʹྻʹอ࣋ͯ͠ΓऔΓΛ͢Δ
10 ɾςετରͷFavoriteDataStoreΛϝϯόมͰ͍࣋ͨͤͯΔ @FavoriteDataStoreTestsΫϥε ॻ͍ͨςετͷߏ ※Ҏ߱ɺίʔυͰ”Dao”ͱॻ͔Ε͍ͯ·͕͢ɺDataStoreʹஔΛ͓ئ͍͠·͢ɻ
11 ॻ͍ͨςετͷߏ @FavoriteDataStoreMockΫϥε
12 @FavoriteDataStoreΫϥε Q1. ςετͷ࣌ͷͨΊʹΘ͟Θ͟ϞοΫΛϝϯόมʹ࣋ͭͷʁ Q2. ςετͷ࣌ͪ͜ΒΛ௨ΔΑ͏ʹifจͰذ͔͠ํ๏ͳ͍ͷʁ ॻ͍ͨςετͷߏ
13 Using RxSwift RxSwiftͷςετͷॻ͖ํ ࣭
14 3Y4XJGUͷςετͷॻ͖ํ @FavoriteDataStoreTestsΫϥε Q3. create͞Ε͔ͯΒexistsΛ࠶֬ೝ͠Α͏ͱ͍ͯ͠·͢ɻ ڍಈͱͯ͠ҙਤͨ͠ͷʹͳ͍ͬͯ·͕͢ɺ ॻ͖ํ߹ͬͯ·͔͢???
15 Setting CocoaPods CocoaPodsͷઃఆ ࣭
16 $PDPB1PETͷઃఆ @Podfile … Q4. :search_pathsʹ͢Δͱɺ͜͜ʹpod ‘Firebase’Λ͠ͳ͍ͱౖΒΕ Δ…ɻ1จͰઆ໌͞ΕͯΔͷ͔͠ݟͨΒͣɺҧ͍ͷৄࡉ͕Γ͍ͨͰ͢ɻ Q5. ೖΕࢠʹͨ͠Βग़དྷ্͕Δtestλʔήοτͷ.framework໊͕Pods_ϓ
ϩδΣΫτ໊_ϓϩδΣΫτ໊TestsʹมΘΓ·ͤΜʁආ͚ํ͋Γ·͢ʁ Q6. ೖΕࢠʹͤͣʹɺdef common_pods … endͷΑ͏ʹͯͦ͠ΕͧΕͷ targetͰݺΜͰΔਓ͍·͕ͨ͠ɺօ͞ΜͲ͏͞Εͯ·͢ʁ ※Q5ͷΑ͏ʹframework໊͕มΘΔ͜ͱʹΑΓɺFrameworksͷࢀর͔Β ݩͷ໊લͷ.frameworkΛআ͢Δඞཁ͕͋Γ·ͨ͠ɻ
17 Setting project ϓϩδΣΫτͷઃఆ ࣭
18 ϓϩδΣΫτͷઃఆ Edit Scheme… > Test > InfoλϒΑΓ
19 ϓϩδΣΫτͷઃఆ TARGETS: ϓϩδΣΫτ໊Tests > Build Settings > pod install͢ΔͱˣͷΑ͏ʹౖΒΕΔͷͰɺ
Yes ͔Β $(inherited) ʹมߋ
20 Setting Bitrise Bitriseͷઃఆ ࣭
21 ϓϩδΣΫτͷઃఆ Workflow > StagingͷΈ ڬΜ͚ͩͩ
22 ʮ·ͣDataStoreͷςετΛॻ͍ͯΈΑ͏ʯ ଘʹᄁ͍͚ͯͨͰ͠ΐ͏͔? ͝ڠྗ͋Γ͕ͱ͏͍͟͝·ͨ͠!! ࠙ձͰੋඇ৭ʑ͓ฉ͔͍ͤͯͩ͘͞!! ಛʹ”RxTest”ͷ͍ॴͱ͔!! MISSION: COMPLETE