Я новичок в написании тестовых случаев, поэтому, пожалуйста, не воздерживайтесь от каких-либо предложений.
Проблема - Как мне написать тестовый случай для (замыкания / функции более высокого порядка), а не для вызова API, исключая их, чтобы получить100% покрытие, я застрял только в этой части.
CODE -
init (workflow: WorkflowType, useCase: UsecaseType, tracking: TrackingManagerType?) {
self.workflow = workflow
self.useCase = useCase
self.tracking = tracking
var items:[ITTReturnPaymentsOptionsModel] = []
items.append(ITTReturnPaymentsOptionsModel(text: "Unexpected payment or \nunknown sender", isSelected: false))
items.append(ITTReturnPaymentsOptionsModel(text: "Incorrect currency", isSelected: false))
items.append(ITTReturnPaymentsOptionsModel(text: "Incorrect amount", isSelected: false))
items.append(ITTReturnPaymentsOptionsModel(text: "Duplicate", isSelected: false))
items.append(ITTReturnPaymentsOptionsModel(text: "Auction/Order cancelled", isSelected: false))
items.append(ITTReturnPaymentsOptionsModel(text: "Charges exceeds the principle amount", isSelected: false))
let observableToggleItems = Observable.just(items)
let tappedItemAction = Observable.combineLatest(observableToggleItems, itemTapped)
.map { argument -> [ITTReturnPaymentsOptionsModel] in // for this closure im stuck
let (items, indexPath) = argument
var modifiedItems = items
for index in modifiedItems.indices {
if index == indexPath.row {
modifiedItems[index].isSelected.toggle()
} else {
modifiedItems[index].isSelected = false
}
}
return modifiedItems
}.startWith(items)
didFetchToggleItems = Observable.merge(getToggleItems.withLatestFrom(observableToggleItems), tappedItemAction)
}