帮助ScalaCheck

时间:2011-09-28 23:06:27

标签: scala scalatest scalacheck

我想使用ScalaTest的Checkers特性从ScalaTest案例中使用ScalaCheck。

我正在玩的一个简单案例是:

 test("can create local date UTC from millis") {
     check(localDate.toTimestampUTC.toLocalDateUTC == localDate)
 }

我需要创建一个任意的LocalDate,所以我尝试了这个:

object ArbitraryValues {
    implicit def abc(): Arbitrary[LocalDate] = Arbitrary(Gen.choose(new LocalDate(0L), new LocalDate(Long.MaxValue)))
}

它没有编译,说,

  

错误:找不到参数c的隐含值:   org.scalacheck.Choose [org.joda.time.LocalDate]隐式val abc:   任意[LocalDate] =任意(Gen.choose(new LocalDate(0L),new   LOCALDATE(Long.MaxValue)))

  

错误:未找到:value localDate   check(localDate.toTimestampUTC.toLocalDateUTC == localDate)

1 个答案:

答案 0 :(得分:7)

好的通过反复试验弄明白了。我的工作代码如下所示:

object ArbitraryValues {
    implicit val abc: Arbitrary[LocalDate] = Arbitrary(Gen.choose(0L, Long.MaxValue).map(new LocalDate(_)))
}

test("can create local date UTC from millis -and- vice versa") { check((localDate: LocalDate) =>
    localDate.toTimestampUTC.toLocalDateUTC == localDate)
}

我必须改变创建Arbitrary [LocalDate]的方式,然后更新我的语法以进行检查。