Domanda

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

È stato utile?

Soluzione

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

Altri suggerimenti

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 ciò che si pensa che esse generano.

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

È possibile lavorare intorno ad esso annotando le vostre proprietà con una dichiarazione Debug.Trace.trace, però. Qualcosa di simile:

import Debug.Trace

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

Sono stato felice con

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

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top