我有一个相当大的案例类结构,并且在这个结构的深处,我有我想要改进的字段,例如,使列表非空。是否可以使用scalacheck-magnolia项目的自动派生来告诉 ScalaCheck 使这些列表非空(不具体提供每个字段)?例子:
import com.mrdziuban.ScalacheckMagnolia.deriveArbitrary
import org.scalacheck.Arbitrary
import org.scalacheck.Gen
case class A(b: B, c: C)
case class B(list: List[Long])
case class C(list: List[Long])
// I've tried:
def genNEL[T: Gen]: Gen[List[T]] = Gen.nonEmptyListOf(implicitly[Gen[T]])
implicit val deriveNEL = Arbitrary(genNEL)
implicit val deriveA = implicitly[Arbitrary[A]](deriveArbitrary)
但它没有成功。