Oli*_*ain 5

使用scalacheck-shapeless

import org.scalacheck.Shapeless._
import org.scalacheck.Arbitrary._

implicitly[Arbitrary[Data]]
Run Code Online (Sandbox Code Playgroud)

上面的代码片段执行以下操作:

  • 调用shapeless.Generic[Data]via 隐式宏将您的案例类转换为shapeless.HList
  • 对每个字段递归获取 all Arbitrary[String],Arbitrary[Int]依此类推
  • 将所有这些组装到一个新Arbitrary[Data]实例中