我在 Specs2 中编写了一个 ScalaCheck 测试用例。测试用例放弃是因为丢弃了太多测试。然而,它并没有告诉我为什么它们被丢弃。我怎样才能找出原因?
最佳答案
在 org.scalacheck.Gen.fail 方法上设置断点并查看调用它的内容。
顺便说一句,就我而言,问题是双重的:
我将
maxDiscarded
设置为一个太小的值 (1),因为我太乐观了 - 我没有意识到 ScalaCheck 会从大小为 0 的集合开始默认情况下,即使我要求一个非空集合(我不知道它为什么这样做)。我正在生成大小为 1 及以上的集合,尽管我后来意识到,对于我试图测试的内容,它们的大小应该为 2 及以上 - 这导致进一步 在基于该生成器的后续生成器中丢弃。
关于specs2 - 为什么 ScalaCheck 在我的规范中丢弃这么多生成的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11086675/