Skip to content

Instantly share code, notes, and snippets.

@andru255
Last active July 25, 2018 16:15
Show Gist options
  • Save andru255/3428e56637347240f399801d136b86cb to your computer and use it in GitHub Desktop.
Save andru255/3428e56637347240f399801d136b86cb to your computer and use it in GitHub Desktop.
Función de stub de getRemoteInfo.swift
// Implementación que retorna un contenido fijo a diferencia de la Función original
// Cobertura para el escenario satisfactorio o success
func getRemoteInfoSuccess(success: @escaping([String: Any]) -> Void, fail: @escaping(Error) -> Void ) {
// Definimos una variable como mock
let json: [String: Any] = {
"name": "Luke SkyWalker of Mocker"
}
success(json)
}
// Implementación que ejecuta el error directamente a diferencia de la Función original
// Cobertura para el escenario fallido o fail
func getRemoteInfoFail(success: @escaping([String: Any]) -> Void, fail: @escaping(Error) -> Void ) {
let error = NSError(domain:"MyDomain", code:-1, userInfo:nil)
fail(error)
}
// Invocando al stub con el escenario satisfactorio
getRemoteInfoSuccess(from: { data in
// Retornará el mock con la llave "name" que tiene el valor de "Luke Skywalker of Mocker"
print("name: ", data["name"]!)
}, fail: { error in
// No se ejecutará nada aqui por definicion del stub
})
// Invocando al stub con el escenario fallido
getRemoteInfoFail(from: { data in
// No se ejecutará nada aqui por definicion del stub
}, fail { error in
// Se podrá mostrar el error definido en el stub
print("error founded", error)
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment