如何使用 scalacheck 轻松生成多头?
How to easily generate longs with scalacheck?
我试过了
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
使用任意长生成器的正确方法是什么包括 nulls
?
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)。
我试过了
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
使用任意长生成器的正确方法是什么包括 nulls
?
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)。