Переписанная среда тестирования specs2 для Scala объединяет автоматическое тестирование с scalacheck . Примеры, приведенные в документации specs2 о том, как использовать scalacheck вместе со specs2, либо используют целые числа , либо более сложные пользовательские генераторы, как в примере json Эрика .
Пытаясь получить немного работает менее сложный пример, я борюсь, потому что не знаю, как использовать specs2 и scalacheck, если я хочу сгенерировать аргументы String вместо Integer. Как бы выглядел этот пример Quickstart
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 , если бы он был написан как спецификация Specs2 с использованием интеграции scalacheck?