【发布时间】:2017-02-01 21:44:19
【问题描述】:
我需要生成对象列表。每个对象都必须包含预定值和生成值。 我创建了生成器,但不确定这是不是真正的方式。 有什么办法让它更具可读性吗?
object Test {
case class A(myInt: Int, randomInt: Int)
val list = List(1, 2, 3, 4, 5)
val subListGen = Gen.someOf(list)
val randomIntGen = Gen.choose(0,10)
import scala.collection.JavaConverters._
val seqAGen: Gen[Seq[A]] = for {
subsetMyInts <- subListGen
seqOfRandomIntsWithSizeEqualGenSubList <- Gen.sequence(subsetMyInts.map(x => randomIntGen))
} yield {
subsetMyInts.zip(seqOfRandomIntsWithSizeEqualGenSubList.asScala.toList).map(x => A(x._1, x._2))
}
}
【问题讨论】:
-
Arseniy 注意到:如果您有 A 类型,则为该类型量身定制生成器是惯用的。
标签: scalacheck