2010-03-25 3 views
10

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?

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.

+1

Ja zurückgegeben, es ist nützlich. –

3

Ich habe zufrieden mit

import Debug.Trace 
verboseCheck prop = quickCheck (\input -> traceShow input $ prop input)