2015-01-04 6 views
0

나는 그러나 나는 nullnulls을 포함하는 임의의 긴 생성기를 사용하는 적절한 방법은 무엇인가를 물을 수 없습니다 NullPointerException 대부분의 아마 때문에 Long의 수, 쉽게 scalacheck로 longs를 생성하는 방법은 무엇입니까?

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) 
    } 

    } 

그래서 갈망에 대한 널 (null)을 생성하지

를 시도?

답변

1

스칼라의 Long은 null 일 수 없습니다 (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 참조).