【发布时间】:2016-07-03 02:41:52
【问题描述】:
在 ScalaCheck 中,一旦任何内部生成的值被过滤掉,mapped/flatMapped Gen 似乎就会失败。例如。 (使用 ScalaTest)
class ScalaCheckGen extends FreeSpec with GeneratorDrivenPropertyChecks {
"Fails" in {
forAll(Gen.listOfN(100, arbitrary[Int].suchThat(_ % 2 == 0))){
_ => assert(true)}
//Gave up after 0 successful property evaluations. 51 evaluations were discarded.
}
"Passes" in {
forAll(Gen.listOfN(100, arbitrary[Int].map(_ * 2))){
_ => assert(true)}
}
}
假设上面的简单解决方法不起作用,因为suchThat 条件很复杂。如何在仍然使用 suchThat 的同时将其重写为工作?
【问题讨论】:
标签: scalatest scalacheck