0

私は試した

  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のnullを生成しますが、NullPointerExceptionおそらくLong保持できないためnull、を含む任意のlongジェネレーターを使用する適切な方法はnulls何ですか?

4

1 に答える 1

2

Scalaを null にLongすることはできません (メソッドに null を渡すと、 Long が期待されます)。Long存在する場合と存在しない場合がある sを表現したい場合は、次のいずれかを使用します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 を参照)。

于 2015-01-04T08:18:16.197 に答える