Die Funktion verboseCheck
von QuickCheck 1 scheint in QuickCheck 2 nicht vorhanden zu sein (oder zumindest finde ich sie nicht). Gibt es eine andere Möglichkeit zu zeigen, welche Werte beim Testen verwendet werden?verboseCheck in QuickCheck 2?
10
A
Antwort
2
Sieht aus wie verbose
(und andere verbose
- Funktionen) wurden wieder in Quickcheck in Version 2.4
1
ich auf Quellen einen Blick nahm, und es scheint, dass Args
Refactoring wurden, ist configEvery
nicht mehr da, und damit sind Sie alle Testwerte drucken nicht in der Lage, ohne QuichCheck Patchen Quellen
4
Ja, dies zu sein scheint eine Funktionalitätsregression in Bezug auf QuickCheck 1.
Sie können es umgehen, indem Sie Ihre Eigenschaften mit einer Debug.Trace.trace-Anweisung jedoch annotieren. Etwas wie:
import Debug.Trace
prop_eq xs = traceShow xs $
xs == reverse (reverse xs)
7
Die sample
Funktion ist auch nützlich:
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"
....
Auf diese Weise ist es einfach, mit Ihren Willkürliche Instanzen zu spielen, und stellen Sie sicher, sie erzeugen, was Sie denken, sie erzeugen.
3
Ich habe zufrieden mit
import Debug.Trace
verboseCheck prop = quickCheck (\input -> traceShow input $ prop input)
Ja zurückgegeben, es ist nützlich. –