這是 2016-11-10 在 CocoaHeads Taipei 分享內容的 demo 程式碼
環境如下:
- Xcode 8.1 (8B62)
- Swift 3, iOS 10 SDK
- macOS 10.12.1
- Protocol 的實例、測試和心得 - Speaker Deck
Commit - 576179b
在這個步驟加入
- .gitignore
- CocoaPods 基本設定
Commit - 5c850e9
Commit - cd21d3b
Commit - 8363654
- 加入 singleton 實作
accessTokenManager
的實際 class 因為還沒實作,這時候先以 optional 的型態呈現
Commit - 93a6357
Commit - 7ffe046
- 加入 KeychainAccess
- 完成 AccessTokenManager 的存取 token 實作
- ❗ 注意:Target 的 Capabilities 的 Keychain Sharing 要調整成
ON
Commit - 3e7a8dc
- 幫 AccessTokenManager 加上 singleton 實作
- 把原本在 AppManager 設定成
TokenManager?
的變數修改,直接取用 AccessTokenManager 的 singleton
Commit - bc62185
- 加上 MockAccessTokenExistTokenManager 作為 accessTokenManager 的測試替身
Commit - ce8e750
- 加上 MockAccessTokenNotExistTokenManager 作為 accessTokenManager 的測試替身
- Apple - Protocols
- WWDC 2015 Session 408 - Protocol-Oriented Programming in Swift (需在 Safari 觀看)
這一部分是這邊和這個範例有關的文章或投影片
- 我的 Manager 的命名方式 - 最近形成的 Manager 寫法 - Swift
- 撰寫 Mock 的心得 - 在 iOS 專案 Mock 心得文和意料之外的收穫
- 測試替身相關簡報 - Stub 與 Networking