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

时间:2012-06-18 16:03:51

标签: specs2 scalacheck

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

1 个答案:

答案 0 :(得分:3)

org.scalacheck.Gen.fail方法上设置一个断点,看看它正在调用它。

顺便说一句,在我的情况下,问题是双重的:

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

  • 我正在生成大小为1及以上的集合,尽管如我后来所知,它们的大小应该是2及以上我试图测试的 - 这导致进一步基于该生成器在以后的生成器中丢弃。