【发布时间】:2012-05-15 13:33:04
【问题描述】:
QuickCheck 1 中的函数verboseCheck 似乎在 QuickCheck 2 中不存在(或者至少,我找不到它)。有没有其他方法可以显示测试期间使用了哪些值?
【问题讨论】:
标签: haskell quickcheck
QuickCheck 1 中的函数verboseCheck 似乎在 QuickCheck 2 中不存在(或者至少,我找不到它)。有没有其他方法可以显示测试期间使用了哪些值?
【问题讨论】:
标签: haskell quickcheck
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"
....
这样,您可以轻松地使用您的任意实例,并确保它们生成您认为它们生成的内容。
【讨论】:
是的,这似乎是 QuickCheck 1 的功能回归。
但是,您可以通过使用 Debug.Trace.trace 语句注释您的属性来解决此问题。比如:
import Debug.Trace
prop_eq xs = traceShow xs $
xs == reverse (reverse xs)
【讨论】:
我很满意
import Debug.Trace
verboseCheck prop = quickCheck (\input -> traceShow input $ prop input)
【讨论】:
看起来 verbose(和其他 verbose- 函数)在 2.4 版中返回给 QuickCheck
【讨论】:
我查看了源代码,似乎 Args 已重构,configEvery 不再存在,因此如果不修补 QuichCheck 源代码,您将无法打印所有测试值
【讨论】: