开发者

verboseCheck in QuickCheck 2?

The function verboseCheck from QuickCheck 1 seems to be absent in QuickCheck 2 (or at least, I can't find it). Is there any other 开发者_C百科way to show which values are used during testing?


The sample function is also useful:

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

This way, it's easy to play with your Arbitrary instances, and make sure they generate what you think they generate.


Yes, this seems to be a functionality regression with respect to QuickCheck 1.

You can work around it by annotating your properties with a Debug.Trace.trace statement, however. Something like:

import Debug.Trace

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


I've been happy with

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


Looks like verbose (and other verbose- functions) were returned back to QuickCheck in version 2.4


I took a look at sources, and it seems that Args were refactored, configEvery is no longer there, and thus you are not able to print all test values without patching QuichCheck sources

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜