5

我想使用 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:Arbitrary[LocalDate] = Arbitrary(Gen.choose(new LocalDate(0L), new LocalDate(Long) .MaxValue)))

错误:未找到:值 localDate 检查(localDate.toTimestampUTC.toLocalDateUTC == localDate)

4

1 回答 1

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] 的方式,然后更新检查的语法。

于 2011-09-28T23:32:27.950 回答