【问题标题】:How to easily generate longs with scalacheck?如何使用 scalacheck 轻松生成多头?
【发布时间】:2015-03-02 01:18:55
【问题描述】:

我试过了

  val arbLong: Gen[Long] = {
    Gen.frequency((20, Arbitrary.arbLong), (20, null)).sample.get.arbitrary
  }


  "arbLong" should "be able to generate null values" in {
    forAll(arbLong) { (generatedLong: Long) =>
      println(generatedLong)
    }

  }

所以它确实会为 long 生成一个空值,但是我得到 NullPointerException 很可能是因为 Long cannot hold null 使用包含 nulls 的任意 long 生成器的正确方法是什么?

【问题讨论】:

    标签: scala scalatest scalacheck


    【解决方案1】:

    Scala 的 Long 不能为空 (Pass null to a method expects Long)。如果您想代表Longs,它可能存在也可能不存在,请使用java.lang.Long

    val arbLong: Gen[java.lang.Long] = {
      Gen.frequency((20, Arbitrary.arbLong), (20, null)).sample.get.arbitrary
    }
    

    Option[Long](见Generate Option[T] in ScalaCheck)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-11
      • 2011-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多