【问题标题】:ScalaCheck nested GenScalaCheck 嵌套生成
【发布时间】: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


    【解决方案1】:

    suchThat 替换为retryUntil,但要注意无限循环。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-16
      • 1970-01-01
      • 2015-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多