【问题标题】:How to generate values for case class parameters in scala如何在scala中为案例类参数生成值
【发布时间】:2016-07-29 14:41:03
【问题描述】:

我有一个包含 250 个字段的案例类:

case class Data(field1:String, field2:Int, .. )

有没有办法使用 scala check 为其参数生成值

我看过的无关问题:
How to generate case objects for every field in a Scala case class using macro?
Dynamically generate case class in Scala
Create an Arbitrary instance for a case class that holds a `Numeric` in ScalaCheck?

【问题讨论】:

标签: scala scalacheck


【解决方案1】:

使用scalacheck-shapeless:

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

implicitly[Arbitrary[Data]]

上面的sn-p做了以下事情:

  • 通过隐式宏调用shapeless.Generic[Data] 将您的案例类转换为shapeless.HList
  • 递归获取每个字段的所有Arbitrary[String]Arbitrary[Int]
  • 将所有这些组合成一个新的Arbitrary[Data] 实例

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多