verboseCheck in QuickCheck 2?

时间:2010-03-25 16:02:35

标签: haskell quickcheck

QuickCheck 1中的函数verboseCheck似乎在QuickCheck 2中不存在(或者至少,我找不到它)。有没有其他方法可以显示测试期间使用哪些值?

5 个答案:

答案 0 :(得分:7)

sample功能也很有用:

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

通过这种方式,您可以轻松地使用任意实例,并确保它们生成您认为它们生成的内容。

答案 1 :(得分:4)

是的,这似乎是关于QuickCheck 1的功能回归。

但是,您可以通过使用Debug.Trace.trace语句对属性进行批注来解决此问题。类似的东西:

import Debug.Trace

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

答案 2 :(得分:3)

我很满意

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

答案 3 :(得分:2)

看起来verbose(和其他verbose - 函数)在版本2.4中返回到QuickCheck

答案 4 :(得分:1)

我查看了来源,似乎Args被重构,configEvery不再存在,因此如果不修补QuichCheck来源,您将无法打印所有测试值