Как написать тест свойства для определенного содержимого списка

У меня есть следующая функция, которую я хочу протестировать с помощью 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" + _)
Другие вопросы по тегам