specs2 - 为什么 ScalaCheck 在我的规范中丢弃这么多生成的值?

标签 specs2 scalacheck

我在 Specs2 中编​​写了一个 ScalaCheck 测试用例。测试用例放弃是因为丢弃了太多测试。然而,它并没有告诉我为什么它们被丢弃。我怎样才能找出原因?

最佳答案

在 org.scalacheck.Gen.fail 方法上设置断点并查看调用它的内容。

顺便说一句,就我而言,问题是双重的:

  • 我将 maxDiscarded 设置为一个太小的值 (1),因为我太乐观了 - 我没有意识到 ScalaCheck 会从大小为 0 的集合开始默认情况下,即使我要求一个非空集合(我不知道它为什么这样做)。

  • 我正在生成大小为 1 及以上的集合,尽管我后来意识到,对于我试图测试的内容,它们的大小应该为 2 及以上 - 这导致进一步 在基于该生成器的后续生成器中丢弃。

关于specs2 - 为什么 ScalaCheck 在我的规范中丢弃这么多生成的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11086675/

相关文章:

scala - specs2 After 方法在示例之前运行

scala - 并行执行测试

scala - 如何验证一个方法在specs2中被准确地调用了N次?

scalacheck 任意隐式和递归生成器

scala - ScalaCheck 中的这种用法

unit-testing - 在 play 2.0 scala 中在同一个 FakeApplication() 中运行多个测试

ScalaCheck:Gen.choose 输出超出指定范围的值

java - 如何报告 scalacheck.P​​rop.forAll 属性测试的所有测试用例输入?

swift - 与 Swift 的 ScalaCheck 等效吗? (测试数据生成器框架)