我试过
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
使用包含{{0}}的任意长生成器的正确方法是什么{1}}?
答案 0 :(得分:2)
Scala的Long
不能为空(Pass null to a method expects Long)。如果您想代表可能存在或不存在的Long
,请使用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)。