我正在尝试解决两个 ScalaCheck (+ specs2) 问题:
有没有办法改变 ScalaCheck 生成的案例数量?
如何生成包含一些 Unicode 字符的字符串?
例如,我想生成大约 10 个包含字母数字和 Unicode 字符的随机字符串。然而,这段代码总是生成 100 个随机字符串,并且它们是严格基于字母字符的:
"make a random string" in {
def stringGenerator = Gen.alphaStr.suchThat(_.length < 40)
implicit def randomString: Arbitrary[String] = Arbitrary(stringGenerator)
"the string" ! prop { (s: String) => (s.length > 20 && s.length < 40) ==> { println(s); success; } }.setArbitrary(randomString)
}
编辑
我才意识到还有一个问题:
- ScalaCheck 经常在没有生成 100 个测试用例的情况下放弃
当然,我不想要 100,但显然我的代码正试图生成一组过于复杂的规则。上次运行时,我看到“47 次测试后放弃”。