首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ScalaCheck集合生成器

ScalaCheck集合生成器
EN

Stack Overflow用户
提问于 2014-01-11 03:08:16
回答 1查看 351关注 0票数 1

我正在使用Scalacheck,并希望生成给定大小的集合。在scalaCheck中有一个特殊的函数Gen.listOfN(size, Gen[T])。在forAll方法中,我打印生成的集合的大小,它并不总是具有定义的大小。实际上,它在第一次尝试时只有给定的大小。例如,size 6 -->第一次尝试采集的大小是6,第二次尝试的大小只有3,我哪里做错了?

EN

回答 1

Stack Overflow用户

发布于 2014-01-11 20:10:20

听起来您可能使用的是旧版本(1.11.0之前)的ScalaCheck。在这些版本中,生成器的边界并不总是得到尊重。

当ScalaCheck为您的属性找到失败的测试用例时,它会尝试简化该测试用例(使其“更小”)。如今(版本>= 1.11.0),ScalaCheck在进行这种简化时会尝试遵守例如listOfN,而不是包含少于n项的测试列表。然而,在某些情况下,例如当您使用Gen.map方法时,ScalaCheck仍然不可能从一开始就知道生成器具有什么边界。

有关ScalaCheck仍然可能以意想不到的方式简化测试用例的情况的更多信息(以及您可以采取哪些措施来缓解这种情况),请参阅:Scalacheck won't properly report the failing case

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21052403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档