I\'m trying to generate random data with Scalacheck. I have a hierarchy of case classes with many properties. The only way I\'ve found so far to populate the case classes is
I am sure somebody will come up with a solution that abstracts over arity using shapeless. But there are some helper methods to generate Gen[T] instances from functions of varying arity, which can be used with the apply method of the case class companion object
case class Data(a: String, b: String, c: String)
val dataArb = Arbitrary(Gen.resultOf(Data))
// equivalent to
// val f: (String, String, String) => Data = Data.apply
// val gen: Gen[Data] = Gen.resultOf(f)
// val arb: Arbitrary[Data] = Arbitrary(gen)