Как написать тест свойства для определенного содержимого списка
У меня есть следующая функция, которую я хочу протестировать с помощью ScalaCheck:
object Windows {
val Directory = "^[a-zA-Z]:\\\\(((?![<>:\"/\\\\|?*]).)+((?<![ .])\\\\)?)*$".r
def arePathsValid(paths: List[String]): Eval[List[String]] = {
Foldable[List]
.foldRight(paths, Eval.later(List.empty[String]))((a: String, b: Eval[List[String]]) => {
Directory.findFirstIn(a) match {
case Some(a) => b.map(a :: _)
case None => b
}
})
}
}
Я пытался начать с:
val propPaths = forAll { l: List[String] => ??? }
Но не мог написать реализацию для свойства.
String
, который должен быть случайно сгенерирован в List
, должен иметь путь к шаблону Windows, например:
C:\temp\foo
Как сделать реализацию недвижимости?
1 ответ
Решение
Вы можете добавить префикс пути Windows следующим образом:
val strGen = Gen.alphaStr // Or any other String generator
val windowsPathGen = strGen.map("C:\temp\foo" + _)