为 Scala重写的specs2测试框架将自动化测试与scalacheck集成在一起。specs2 文档中给出的关于如何将 scalacheck 与 specs2 一起使用的示例使用整数或更复杂的自定义生成器,如eric 的 json 示例。
在尝试让一个稍微不那么复杂的示例工作时,我很挣扎,因为如果我想生成字符串参数而不是整数,我不知道如何使用 specs2 和 scalacheck。这个快速入门示例如何
import org.scalacheck._
object StringSpecification extends Properties("String") {
property("startsWith") = Prop.forAll((a: String, b: String)
=> (a+b).startsWith(a))
property("endsWith") = Prop.forAll((a: String, b: String)
=> (a+b).endsWith(b))
// Is this really always true?
property("concat") = Prop.forAll((a: String, b: String) =>
(a+b).length > a.length && (a+b).length > b.length
)
property("substring") = Prop.forAll((a: String, b: String) =>
(a+b).substring(a.length) == b
)
property("substring") = Prop.forAll((a: String, b: String, c: String) =>
(a+b+c).substring(a.length, a.length+b.length) == b
)
}
从scalacheck 主页看,如果它是使用 scalacheck 集成编写为 Specs2 规范的?