Los macros expect(_:_:sourceLocation:) y require(_:_:sourceLocation:) pueden ser usados para validar los resultados y errores esperados.
Validar un resultado
Las macros expect(_:_:sourceLocation:) y require(_:_:sourceLocation:) capturan una expresión booleana y provocan que la prueba falle si el código no satisface la expectativa.
expect(_:_:sourceLocation:) permite que la prueba continúe aunque falle la expectativa, mientras que require(_:_:sourceLocation:) detiene la prueba si no se satisface el requisito.
En el siguiente ejemplo, a pesar de que la primera expectativa falla, la prueba continúa. La segunda expectativa también falla y aún así la prueba continúa. La tercera expectativa sí se cumple.
@Test
func multipleFailingConditions() {
#expect(1 + 1 == 3) // ❌ Falla y continúa
#expect(1 + 1 == 4) // ❌ También falla
#expect(1 + 1 == 2) // ✅ Pasa
}
En el siguiente ejemplo, el requerimiento de require(_:_:sourceLocation:) no se satisfizo, lo que provoca que arroje un error de tipo ExpectationFailedError y detenga la prueba.
@Test
func breakingTestUponRequireFailed() throws {
try #require( 1 + 1 == 3) // ❌ Falla y para
#expect(1 + 1 == 2) // ⚠️ Nunca se ejecuta
}
Bibligrafía
- Documentación sobre Swift Testing, aquí.
- Documentación sobre expect (comprobar bool)
- Documentación sobre require (comprobar bool)
Top comments (0)