找不到 org.scalacheck.Arbitrary 类型的证据参数的隐式值

could not find implicit value for evidence parameter of type org.scalacheck.Arbitrary

我正在尝试使用具有以下签名的名为 random 的方法:

def random[T: WeakTypeTag: Arbitrary]: T 

在一个名为 Checking 的案例 class 中,但我明白了:

could not find implicit value for evidence parameter of type org.scalacheck.Arbitrary[com.organization.lambda.Checking]

我知道这是由于上下文边界的一些问题,但我无法理解这个问题并理解必须做什么。

你用random-data-generator-magnolia吗?

如果是这样,您应该为 Arbitrary[Checking] 案例指定隐式值 class。

示例来自 test source

implicit val arbitraryPerson: Arbitrary[Person] = Arbitrary {
  for {
    name <- Gen.oneOf("Daniela", "John", "Martin", "Marco")
    age <- Gen.choose(0, 100)
  } yield Person(name, age)
}

val instance = random[Person]

人是:

case class Person(name: String, age: Int)