27

好的,正如我通过上一个问题了解到的那样,RWH 书对于 QuickCheck 来说已经过时了。尽管我读过的所有帖子都告诉我使用 QuickCheck 是多么简单,但我找不到任何地方告诉我如何更改为属性运行的测试数量。

RWH 说:

handyCheck limit = check defaultConfig {
                     configMaxTest = limit
                   , configEvery   = \_ _ -> ""
                   }

如何使用 QuickCheck 2.4 做到这一点?更重要的是,我怎么会发现自己?请不要告诉我我应该能够从 API 文档中弄清楚。

4

2 回答 2

50

您正在寻找:

quickCheckWith stdArgs { maxSuccess = 5000 } someProp

我是怎么发现的

  1. 我去了API 文档
  2. 我看到的第二件事quickCheckArgs带有maxSuccess字段的类型。
  3. 我不想写所有的字段,所以我找了一个 type Args-finding的值stdArgs。(使用您的浏览器搜索功能 - 通常是 ctrl-f)。OTOH,我本可以使用hoogle
  4. 我需要在Args某个地方使用我的类型,所以我一直在寻找。下一行是quickCheckWith- 宾果游戏!另一方面,我本可以使用hoogle

你还能怎么知道

正如我上面所说,假设您意识到Args类型是您需要的核心(来自黑线鳕),您可以使用 hoogle 找到很多功能。

否则,您可能只需要查看其他软件包的功能,这意味着您需要知道其他软件包值得一看。QuickCheck 中的示例文件夹似乎很明显,但并非所有软件包都包含此类示例。使用反向依赖,您通常可以找到要查看的包,但对于 QC,许多包没有显式依赖。

于 2011-11-14T01:23:21.820 回答
4

对于那些想要一次运行所有测试并提供他们的配置的人:

return []
main = $forAllProperties (quickCheckWithResult stdArgs { maxSuccess = 500 })
于 2016-03-03T11:30:12.497 回答