¿Qué son Quick/Nimble y para qué sirven?
\n\nQuick y Nimble son dos bibliotecas complementarias para el lenguaje Swift, diseñadas para escribir pruebas en el estilo Behavior-Driven Development (BDD). BDD es una metodología de desarrollo que se centra en el comportamiento de la aplicación desde el punto de vista del usuario, no en los detalles técnicos de implementación. En lugar de afirmaciones secas como XCTAssertEqual(a, b), describes lo que debería suceder: "cuando el usuario presiona un botón, la aplicación debe mostrar un saludo".
Quick es un framework para describir escenarios de prueba. Proporciona un DSL (Domain-Specific Language) que permite estructurar las pruebas en una jerarquía: describe (descripción del contexto), context (especificación de condiciones) e it (prueba concreta). Esto hace que las pruebas sean legibles y comprensibles incluso para miembros no técnicos del equipo (gerentes, analistas).
Nimble es una biblioteca para escribir matchers (afirmaciones). En lugar de los estándar XCTAssert, usas construcciones expresivas: expect(value).to(equal(expected)), expect(array).to(contain(element)). Nimble proporciona docenas de matchers integrados y permite crear fácilmente los tuyos propios.
¿Para qué sirve esto?
\n- \n
- Legibilidad: Las pruebas en BDD se ven como una especificación. Puedes mostrarlas al cliente y asegurarte de que los requisitos se entienden correctamente. \n
- Estructuración: La jerarquía
describe/context/itayuda a organizar las pruebas lógicamente, evitando el "código espagueti". \n - Matchers expresivos: Nimble hace que las afirmaciones sean más visuales e informativas. Los errores en las pruebas se vuelven comprensibles de inmediato. \n
- Facilidad de depuración: Cuando una prueba falla, no solo ves "se esperaba 5, se obtuvo 3", sino el contexto completo: "Cuando el usuario ingresa una contraseña incorrecta, el sistema debe mostrar un error". \n
Instalación de Quick/Nimble
\n\nQuick y Nimble se instalan a través de CocoaPods o Swift Package Manager (SPM). Veremos ambos métodos.
\n\nInstalación mediante CocoaPods
\nSi aún no usas CocoaPods, instálalo:
\nsudo gem install cocoapods\nEn la raíz de tu proyecto, crea un archivo Podfile y agrega lo siguiente:
target 'YourAppName' do\n # Dependencias habituales (si las hay)\n use_frameworks!\n\n target 'YourAppNameTests' do\n inherit! :search_paths\n pod 'Quick'\n pod 'Nimble'\n end\nend\nLuego ejecuta:
\npod install\nDespués de esto, abre el archivo .xcworkspace.
Instalación mediante Swift Package Manager (SPM)
\nEn Xcode: File → Add Packages... e ingresa la URL del repositorio:
https://github.com/Quick/Quick.git\nhttps://github.com/Quick/Nimble.git\nSelecciona la última versión estable y agrega los paquetes a tu objetivo de prueba (YourAppNameTests).
Inicio rápido: primera prueba
\nCreemos una clase simple Calculator y probémosla.
Clase para probar
\n// Calculator.swift\nimport Foundation\n\nclass Calculator {\n func add(_ a: Int, _ b: Int) -> Int {\n return a + b\n }\n\n func subtract(_ a: Int, _ b: Int) -> Int {\n return a - b\n }\n\n func multiply(_ a: Int, _ b: Int) -> Int {\n return a * b\n }\n}\n\nPrueba usando Quick y Nimble
\n// CalculatorSpec.swift\nimport Quick\nimport Nimble\n@testable import YourAppName // Reemplaza con el nombre de tu aplicación\n\nclass CalculatorSpec: QuickSpec {\n override func spec() {\n describe("Calculator") {\n var calculator: Calc También en la biblioteca
Mapster para C# (.NET): guía completa con ejemplos prácticos
Trabajo con Excel en Swift: Guía completa de bibliotecas y herramientas para iOS/macOS
Procesamiento de JSON en Swift: Codable, Foundation y SwiftyJSON para iOS/macOS
multierr en Go: guía completa con ejemplos prácticos
SwiftyUserDefaults para Swift: guía completa con ejemplos