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.2k
プロジェクトの1ファイルに単体テストを書いてみた!〜本当にこれで合ってるの…??🤔〜
iOS Test Night #6にて発表した時の資料です!
takattata
December 05, 2017
Tweet
Share
More Decks by takattata
See All by takattata
What's DDD?
takattata
5
890
Kotlinのコントリビュートに挑戦してみたよ!
takattata
3
290
導入画面を実装したよ
takattata
1
1.9k
AndroidXに移行しようと`してみた`!
takattata
2
720
Flutterテストことはじめ
takattata
1
800
Flutter
takattata
3
1.6k
ディープリンクを実装した
takattata
1
1.8k
introduce unit testing
takattata
1
570
xUnit Test Patterns の序章
takattata
1
350
Other Decks in Programming
See All in Programming
FormFlow - Build Stunning Multistep Forms
yceruto
1
160
[初登壇@jAZUG]アプリ開発者が気になるGoogleCloud/Azure+wasm/wasi
asaringo
0
130
Cloudflare Realtime と Workers でつくるサーバーレス WebRTC
nekoya3
0
390
Webからモバイルへ Vue.js × Capacitor 活用事例
naokihaba
0
540
A comprehensive view of refactoring
marabesi
0
110
Rails産でないDBを Railsに引っ越すHACK - Omotesando.rb #110
lnit
1
160
Practical Tips and Tricks for Working with Compose Multiplatform Previews (mDevCamp 2025)
stewemetal
0
120
「ElixirでIoT!!」のこれまでとこれから
takasehideki
0
350
Prism.parseで 300本以上あるエンドポイントに 接続できる権限の一覧表を作ってみた
hatsu38
1
110
ktr0731/go-mcpでMCPサーバー作ってみた
takak2166
0
160
インターフェース設計のコツとツボ
togishima
2
700
Create a website using Spatial Web
akkeylab
0
260
Featured
See All Featured
Fireside Chat
paigeccino
37
3.5k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Building Adaptive Systems
keathley
43
2.6k
GraphQLとの向き合い方2022年版
quramy
46
14k
Typedesign – Prime Four
hannesfritz
42
2.7k
Gamification - CAS2011
davidbonilla
81
5.3k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
123
52k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
4
130
How to Think Like a Performance Engineer
csswizardry
24
1.7k
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