¿Qué hace el property-based testing (por ejemplo Hypothesis)?
Opciones
- Prueba solo las propiedades de cada objeto
- Genera entradas aleatorias para comprobar invariantes (Opción correcta)
- Mide cuánta cobertura de código tienen los tests
- Graba tráfico HTTP para reproducirlo
Respuesta
Genera muchas entradas aleatorias para comprobar que los invariantes siempre se cumplen, y reduce los fallos a un ejemplo mínimo
Por qué
En lugar de escribir ejemplos uno a uno, describes una regla que debe cumplirse SIEMPRE, y la librería prueba cientos de entradas generadas, incluidas las más difíciles (vacías, enormes, unicode, negativas).
Regla de ejemplo: ordenar dos veces da el mismo resultado que ordenar una, y conserva la longitud.
Cuando encuentra un fallo, lo reduce a la entrada más pequeña que sigue fallando, lo que facilita la depuración.
Recuerda
Property-based = probar reglas con muchas entradas generadas.