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 check(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 に答える