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.1k
プロジェクトの1ファイルに単体テストを書いてみた!〜本当にこれで合ってるの…??🤔〜
iOS Test Night #6にて発表した時の資料です!
takattata
December 05, 2017
Tweet
Share
More Decks by takattata
See All by takattata
What's DDD?
takattata
5
820
Kotlinのコントリビュートに挑戦してみたよ!
takattata
3
280
導入画面を実装したよ
takattata
1
1.9k
AndroidXに移行しようと`してみた`!
takattata
2
690
Flutterテストことはじめ
takattata
1
750
Flutter
takattata
3
1.5k
ディープリンクを実装した
takattata
1
1.8k
introduce unit testing
takattata
1
540
xUnit Test Patterns の序章
takattata
1
330
Other Decks in Programming
See All in Programming
エンジニアとして関わる要件と仕様(公開用)
murabayashi
0
290
Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
cer
PRO
0
330
ふかぼれ!CSSセレクターモジュール / Fukabore! CSS Selectors Module
petamoriken
0
150
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
250
レガシーシステムにどう立ち向かうか 複雑さと理想と現実/vs-legacy
suzukihoge
14
2.2k
Click-free releases & the making of a CLI app
oheyadam
2
120
A Journey of Contribution and Collaboration in Open Source
ivargrimstad
0
950
どうして僕の作ったクラスが手続き型と言われなきゃいけないんですか
akikogoto
1
120
Less waste, more joy, and a lot more green: How Quarkus makes Java better
hollycummins
0
100
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
120
Ethereum_.pdf
nekomatu
0
460
macOS でできる リアルタイム動画像処理
biacco42
9
2.4k
Featured
See All Featured
A better future with KSS
kneath
238
17k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Visualization
eitanlees
145
15k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
What's in a price? How to price your products and services
michaelherold
243
12k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Automating Front-end Workflow
addyosmani
1366
200k
Embracing the Ebb and Flow
colly
84
4.5k
Being A Developer After 40
akosma
87
590k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Thoughts on Productivity
jonyablonski
67
4.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
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