QuickCheck 1中的函数verboseCheck
似乎在QuickCheck 2中不存在(或者至少,我找不到它)。有没有其他方法可以显示测试期间使用哪些值?
答案 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来源,您将无法打印所有测试值