Я использую библиотеку Scalacheck для тестирования своего приложения. В этой библиотеке есть объект Gen
, который определяет неявные преобразования любого объекта в генератор объектов этого класса.
Например, импорт Gen._
позволяет вам вызывать такие методы, как sample
для любого объекта, посредством неявного преобразования в Gen
:
scala> import org.scalacheck.Gen._
import org.scalacheck.Gen._
scala> "foo" sample
res1: Option[java.lang.String] = Some(foo)
В этом примере неявный Gen.value()
применяется к "foo"
, давая генератор, который всегда возвращает Some(foo)
.
Но это не работает:
scala> import org.scalacheck.Gen.value
import org.scalacheck.Gen.value
scala> "foo" sample
<console>:5: error: value sample is not a member of java.lang.String
"foo" sample
^
Почему бы и нет?
Обновление
Я использую Scala 2.7.7final и ScalaCheck 2.7.7-1.6.
Обновление
Только что перешел на Scala 2.8.0.final с ScalaCheck 2.8.0-1.7. Проблема действительно ушла.