我有一个包含 250 个字段的案例类:
case class Data(field1:String, field2:Int, .. )
有没有办法使用 scala check 为其参数生成值
我看过的不相关问题:
如何使用宏为 Scala 案例类中的每个字段生成案例对象? https://stackoverflow.com/questions/38442722/how-to-generate-case-objects-for-every-field-in-a-scala-case-class-using-macro
在Scala中动态生成案例类 https://stackoverflow.com/questions/10583283/dynamically-generate-case-class-in-scala
为 ScalaCheck 中保存“Numeric”的案例类创建一个任意实例? https://stackoverflow.com/questions/36724879/create-an-arbitrary-instance-for-a-case-class-that-holds-a-numeric-in-scalache
Use scalacheck-无形状 https://github.com/alexarchambault/scalacheck-shapeless:
import org.scalacheck.Shapeless._
import org.scalacheck.Arbitrary._
implicitly[Arbitrary[Data]]
上面的代码片段执行以下操作:
- 召唤一个
shapeless.Generic[Data]
通过隐式宏将您的案例类转换为shapeless.HList
- 递归获取全部
Arbitrary[String]
, Arbitrary[Int]
每个领域等等
- 将所有这些组装成一个新的
Arbitrary[Data]
实例
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)