Scalatest:如果两个匹配器中的一个匹配,则进行测试

时间:2015-08-18 12:23:47

标签: scala testing scalatest

我很难在一个案例类的匹配器之间找到or关系,它与给定类的不同方法/字段匹配。

我知道我可以使用exists||进行操作,最终会得到Bool,但会删除测试框架中我不想要的所有反馈。

以下是我想要做的一个例子:

class ExampleSpec extends FunSpec with Matchers {

  case class Element(count: Int,  value: String)

  val data : List[Element] = List(
    Element(0, "ok"),
    Element(5, "")
    Element(0,""),
    Element(1, "a")
  )

  describe("My data test") {
    data foreach {d =>
        it("valid data either has a count > 0 or the value is not empty") {
          d.count should be > 0 or d.value should not be empty // I have no idea how to get the or working
        }

    }
  }
}

我能想到的最好的事情是:

   def okishSolution(e: Element) = {
     val res = (e.count > 0 || d.value.nonEmpty)
     if (! res) { info(s"Failed: $d , did not meet requirements") }

      res should be(true)
    }

1 个答案:

答案 0 :(得分:1)

它不完美,但您可以使用packages.config

should matchPattern