在我的测试中,我对 Specs2 + ScalaCheck 进行了相当广泛的使用,并且有一些模式需要考虑。我还没有发现我的函数应该使用 Arbitrary[T] 还是 Gen[T],因为它们非常相似:
sealed abstract class Arbitrary[T] {
val arbitrary: Gen[T]
}
函数签名会像这样:
maxSizedIntervalArbitrary[A,B](implicit ordering:Ordering[A], genStart:Arbitrary[A], genEnd:Arbitrary[B]):Arbitrary[TreeMap[A,B]]
还是我应该在Gen
抽象级别工作?