10

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

4

5 回答 5

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

这样,就可以轻松地使用您的 Arbitrary 实例,并确保它们生成您认为它们生成的内容。

于 2010-03-26T22:02:17.560 回答
4

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

但是,您可以通过使用 Debug.Trace.trace 语句注释您的属性来解决它。就像是:

import Debug.Trace

prop_eq xs = traceShow xs $ 
   xs == reverse (reverse xs)
于 2010-03-25T18:01:38.027 回答
3

我一直很高兴

import Debug.Trace
verboseCheck prop = quickCheck (\input -> traceShow input $ prop input)
于 2010-10-21T19:50:25.157 回答
2

看起来verbose(和其他verbose功能)在 2.4 版中返回给 QuickCheck

于 2011-06-08T17:48:24.003 回答
1

我查看了源,似乎Args已重构,configEvery不再存在,因此您无法在不修补 QuichCheck 源的情况下打印所有测试值

于 2010-03-25T16:57:21.250 回答