verboseCheck no QuickCheck 2?
-
22-09-2019 - |
Pergunta
A função verboseCheck
do QuickCheck 1 parece estar ausente no QuickCheck 2 (ou pelo menos não consigo encontrá-lo).Existe alguma outra maneira de mostrar quais valores são usados durante o teste?
Solução
Parece verbose
(e outro verbose
- funções) foram retornados ao QuickCheck na versão 2.4
Outras dicas
O sample
função também é útil:
Prelude Test.QuickCheck
ghci> sample (arbitrary :: Gen String)
""
")\223"
"(\227\&5F"
"\DC1"
"\136'\140\180\FS"
"K\DC2\NUL\CAN\253Q"
"\DC4\f\184&.\DC3\159\&1I\160j\147"
....
Dessa forma, é fácil brincar com suas instâncias arbitrárias e garantir que elas gerem o que você acha que geram.
Sim, esta parece ser uma regressão de funcionalidade em relação ao QuickCheck 1.
No entanto, você pode contornar isso anotando suas propriedades com uma instrução Debug.Trace.trace.Algo como:
import Debug.Trace
prop_eq xs = traceShow xs $
xs == reverse (reverse xs)
Eu estive feliz com
import Debug.Trace
verboseCheck prop = quickCheck (\input -> traceShow input $ prop input)
Dei uma olhada nas fontes e parece que Args
foram refatorados, configEvery
não está mais lá e, portanto, você não será capaz de imprimir todos os valores de teste sem corrigir as fontes do QuichCheck