2010-03-25 17 views
10

La funzione verboseCheck di QuickCheck 1 sembra essere assente in QuickCheck 2 (o almeno, non riesco a trovarlo). C'è un altro modo per mostrare quali valori vengono usati durante i test?verboseCheck in QuickCheck 2?

risposta

2

Sembra verbose (e altre verbose - funzioni) sono stati restituiti di nuovo a QuickCheck nella versione 2.4

1

ho preso uno sguardo a fonti, e sembra che Args stati refactoring, configEvery non c'è più, e quindi non sono in grado di stampare tutti i valori del test, senza l'applicazione di patch fonti QuichCheck

4

Sì, questo sembra essere una regressione di funzionalità rispetto a QuickCheck 1.

È possibile aggirare il problema annotando le proprietà con un'istruzione Debug.Trace.trace, tuttavia. Qualcosa di simile:

import Debug.Trace 

prop_eq xs = traceShow xs $ 
    xs == reverse (reverse xs) 
7

La funzione sample è anche utile:

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" 
.... 

In questo modo, è facile giocare con le istanze arbitrarie, e assicurarsi che essi generano quello che pensi che generano.

+1

Sì, è utile. –

3

Sono stato felice con

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