8. 2. 動作パターン分のMockTypeを事前に定義しておき、
DebugMenuからそれらを切り替えられるようにする。
• 以下のようなMockTypeのenumを定義
• DebugMenuから選択中のMockTypeを切り替えて、UserDefaultsに保存する
• UserDefaultsの状態に合わせて、通信用classを再設定する
enum MockType: String, CaseIterable {
case randomList
case randomListWithSameColor
case randomListWithShortText
case randomListWithDelay
case single
case empty
case error
}
9. 3. MockのClassは設定したMockTypeに応じた
値を返すようにする。
• 選択したMockTypeに応じて、レスポンスを切り替える
switch mockType {
case .randomList:
let list = [Int](0...Int.random(in: 1...100))
.map({ _ in ColorModel(text: .random(), color: .random) })
completion(.success(list))
case .single:
completion(.success([.init(text: .random(), color: .random)]))
case .empty:
completion(.success([]))
case .error:
completion(.failure(MockError.mockError(message: "This is Error(Mock)”)))
……
}