【发布时间】:2021-06-19 08:10:14
【问题描述】:
是否可以将自定义生成函数提升为Gen?
例如为mongo生成ObjectIds。
import org.mongodb.scala.bson.ObjectId
import org.scalacheck.Gen
val genObjectId: Gen[ObjectId] = Gen.lift(() => new ObjectId)
我发现的only possible solution 可以像这样破解生成器:
val genObjectId: Gen[ObjectId] = Gen.numChar.map(_ => new ObjectId)
使用Gen.hexChar 生成ObjectIds 无关紧要,因为:
- 我每次都需要唯一的价值
- Mongo 可以将某些生成的十六进制字符串视为无效
【问题讨论】:
标签: scala testing scalatest scalacheck