¿Cuál es la mejor práctica para mostrar los motivos de una prueba de propiedad fallida cuando se prueba a través de QuickCheck?¿Cómo se muestra un motivo de una propiedad de prueba fallida con quickcheck?
Considérese, por ejemplo:
prop a b = res /= []
where
(res, reason) = checkCode a b
A continuación, la sesión podría ser así:
> quickCheck prop
Falsifiable, after 48 tests:
42
23
Pero para depurar que sería muy conveniente para mostrar el motivo del error como parte del falsifable QUICKCHECK informe.
he cortado de esta manera:
prop a b = if res /= [] then traceShow reason False else True
where
(res, reason) = checkCode a b
es que hay una mejor o más quickcheckish manera mejor/para hacerlo?
¿Puede dar un ejemplo simple de cómo devolver exactamente un Resultado de manera que la variable "razón" (suponiendo que es una cadena o valor demostrable) se muestre en caso de error? – maxschlepzig
Gracias por la actualización. Estaba demasiado obsesionado con http://www.cse.chalmers.se/~rjmh/QuickCheck/manual.html y no busqué en los documentos de módulos completos y actualizados http://hackage.haskell.org/packages/ archive/QuickCheck/2.4.0.1/doc/html/Test-QuickCheck-Property.html - parece que 'printTestCase' es una adición reciente - quickCheck 2.1 no lo incluye. – maxschlepzig