我想使用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)
答案 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]的方式,然后更新我的语法以进行检查。