Estou fazendo teste de uma aplicação, quando executo o teste ele não passa dentro de um ForEach e acabo não atingindo a corbetura de teste desejada. Alguém poderia me ajudar ou passar a forma correta de como faço isso?
No projeto estou utilizando a arquitetura VIP(Clean), estamos realizando o teste na camada de presenter.
Trecho do codigo da presenter onde estou tendo dificuldade em realizar o teste
response.paymentTypes.forEach { paymentType in
let paymentTypeEnum = paymentType.paymentType
let id = paymentType.id ?? ""
let name = paymentType.paymentTypeDescription ?? ""
var imageName = ""
switch paymentTypeEnum {
case .cartao(.debito):
imageName = "payment_type_debito"
case .cartao(.credito(_)):
imageName = "payment_type_credito"
case .cartao(.voucher):
imageName = "payment_type_voucher"
default:
imageName = ""
}
let paymentType = PaymentTypesWithCardModels.GetPaymentTypesWithCard.ViewModel.PaymentTypeViewWithCardModel(id: id, name: name, imageName: imageName)
paymentTypeViewModel.append(paymentType)
}
Na cobertura de teste esse trecho inteiro não passa uma vez.
trecho da função de teste
func testCalledPaymentTypeCashCredit() {
let (viewController, presenter) = makeSut()
presenter.presentPaymentTypes(response: SupportPaymentTypeTest.response)
SupportPaymentTypeTest.paymentTypeViewModel.append(SupportPaymentTypeTest.paymentTypeCredit)
viewController.displayPaymentTypes(viewModel: SupportPaymentTypeTest.viewModel)
XCTAssertEqual(SupportPaymentTypeTest.response.paymentTypes.count, 1)
XCTAssertNotNil(SupportPaymentTypeTest.response.paymentTypes)
XCTAssertEqual(SupportPaymentTypeTest.paymentTypeViewModel.count, 1)
XCTAssertEqual(SupportPaymentTypeTest.paymentTypeCredito.id, "2911")
XCTAssertEqual(SupportPaymentTypeTest.paymentTypeCredito.name, "Crédito")
XCTAssertEqual(SupportPaymentTypeTest.paymentTypeCredito.imageName,"payment_type_credito")
XCTAssertNotNil( viewController.displayPaymentTypes(viewModel: SupportPaymentTypeTest.viewModel))
XCTAssertTrue(viewController.displayStatusIsCalled)
}
Sei que no momento estou realizando o teste somente com um caso dentre os 3 que aparece no switch
.
Se alguém puder me ajudar e me explicar no que estou errando ou se esqueci de alguma coisa ficarei grato!