我想知道在应用程序中直接使用ScalaCheck是否可行和适当,而不是仅在测试中使用它。我没有仔细阅读。但在我看来,Gen
的{{1}}是doApply()
,因此这些生成器无法直接用于获取基础值。
答案 0 :(得分:2)
是的,的确可以。以下是ScalaCheck书中用于创建类似密码的生成器以及如何使用它的示例:
import org.scalacheck.Gen
val genString = for {
c1 <- Gen.numChar
c2 <- Gen.alphaUpperChar
c3 <- Gen.alphaLowerChar
c4 <- Gen.alphaChar
c5 <- Gen.alphaNumChar
} yield List(c1,c2,c3,c4,c5).mkString
scala> genString.sample
res0: Option[String] = Some(7Okpt)
scala> genString.sample
res1: Option[String] = Some(6WwTg)